ANTIGRAVITY LABJP
Articles/App Development
App Development/2026-07-02Intermediate

Stop Dreading the Rejection Email: Triaging App Store Review Feedback with an Antigravity Agent

A working setup for feeding App Store rejection notices into Antigravity, classifying them against a guideline playbook, and gating resubmission with an Info.plist lint — with real turnaround numbers.

App Store6App ReviewAntigravity303agents118iOS developmentautomation73

Premium Article

Some mornings there is a message from App Review sitting in the inbox, and the subject line alone is enough to reshuffle the whole day. As an indie developer running several apps in parallel, I get a rejection a few times a year — always when I have stopped expecting one.

For a long time my response was improvised. Which guideline number is this? How did I fix it last time? What did I write back? The records were scattered across the Resolution Center, old emails, and commit logs, so every rejection meant starting the investigation from zero. Half a day, gone.

These days I hand the first pass to an Antigravity agent. The judgment calls stay with me; what the agent owns is the prep work — classification, playbook lookup, and checklist generation. This article shares that setup, including the actual playbook and scripts I use at Dolice Labs.

Why rejection handling is slow in the first place

The delay is rarely technical. In my case it came down to three things.

First, emotional friction. Rejection notices are written in a flat, procedural tone, but the person reading them braces anyway. Just opening the message takes willpower.

Second, scattered history. What you did last time lives in three different places, and reassembling it is the real first task.

Third, the absence of classification. Apple's feedback maps to numbered sections of the App Store Review Guidelines, but unless you have translated each number into your own action list, every rejection sends you back to rereading the guideline text.

The agent's job is the third item: fixing the classification and the procedure. Once that is in place, the first item softens too. An email you know will be sorted for you is a much easier email to open.

Step 1: Capture the notice and structure it

One constraint up front: Resolution Center messages are not available through the App Store Connect API. You can track review status via the API, but the actual text of the feedback exists only on the web page and in email. Manual copy or attachment is the entry point — there is no way around it.

Antigravity added PDF attachment support in its late-June update, so I save the review email as a PDF and attach it to the conversation directly. Screenshots work as well, but multi-page feedback survives better as a PDF.

The agent's first task is converting the attachment into this JSON shape:

{
  "app": "wallpaper-app-A",
  "submission_date": "2026-06-24",
  "guidelines": [
    {
      "number": "5.1.1",
      "topic": "Data Collection and Storage",
      "demand": "Photo library purpose string is insufficient",
      "target": "Info.plist / NSPhotoLibraryUsageDescription"
    }
  ],
  "reviewer_questions": [],
  "binary_or_metadata": "binary"
}

The field that matters most is binary_or_metadata. Whether the fix requires a new binary or only metadata changes — description text, screenshots, purpose strings — completely changes the path back to review. Metadata-only means no rebuild. Pinning this decision at intake saves one unnecessary build per incident.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
A YAML playbook that pins down first-response steps per frequently-cited guideline, ready to drop into your repo
A Node lint script that machine-checks Info.plist purpose strings before you resubmit
The operational flow that cut my triage-to-resubmission time from half a day to roughly 90 minutes
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Antigravity Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

App Dev2026-06-24
Running Pre-Release Checks Without Opening the IDE — Designing the Android CLI as the Verification Gate of an Unattended Pipeline
How to slot Android CLI v1.0 into an unattended pipeline as its verification gate — three layers of checks, an exit-code contract, and a density-by-locale matrix, sized for an indie developer's day-to-day.
App Dev2026-06-21
Feeding Store Review Guidelines as a PDF to the Agent to Build a Per-App Pre-Release Checklist
Using Antigravity v2.1.4's PDF attachment, this walks through reading the App Store and Play review guidelines into the agent as context and turning them into a pre-release checklist tied to your app's actual features.
App Dev2026-05-06
Running a Solo AI Studio with Antigravity × Google AI — Automating Every Stage of App Development as One Developer
How to combine Antigravity 2.0 and Antigravity CLI with Stitch and Veo 3 into a pipeline that takes an app from design through implementation, testing, asset generation, and App Store submission, driven by one developer. Covers where to delegate to agents and the operational pitfalls.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →