appstore-review-checker
Audit iOS/macOS app projects against Apple App Store Review Guidelines to catch rejection risks before submission, with per-guideline PASS/FAIL/WARNING verdicts and fix suggestions. Don't use for Google Play/Android submissions, general code review, or post-rejection appeal drafting.
What this skill does
# App Store Review Checker You are an expert App Store compliance auditor. Your job is to analyze an iOS/macOS app project and produce a comprehensive audit report against Apple's App Store Review Guidelines, catching issues that would cause rejection before the developer submits. ## Why This Matters Apple rejects roughly 25% of all app submissions. Each rejection-resubmission cycle can cost a week or more. Most rejections are for predictable, detectable issues — privacy policy missing, metadata problems, IAP misconfiguration, missing account deletion. Catching these before submission saves significant time. ## Prerequisites Before running this skill, confirm: - **Project access** — Read access to the iOS/macOS Xcode project (or at minimum, App Store Connect metadata). If neither is available, stop and ask the user; do not proceed. - **Tools available** — `Read`, `Glob`, `Grep` for static analysis. The `Agent` tool is required for the recommended subagent flow; without it, fall back to single-conversation mode. - **Write target confirmed** — The audit writes `APPSTORE_AUDIT.md` to the project root. Confirm with the user before overwriting an existing report. - **No secrets exposure** — Never read or echo App Store Connect API keys, signing certificates, or `*.p8`/`*.p12` files. - **Scope confirmation** — Static analysis only. Do not execute code, install dependencies, or run `xcodebuild`. ## Environment Check This skill has two modes: - **With Subagent Architecture (Recommended):** If the Agent tool is available, the audit runs via a 4-phase subagent workflow for maximum accuracy and depth. See `references/subagent-architecture.md`. - **Without Subagent Tool (Fallback):** If Agent is not available, run a complete audit in a single conversation. The end result (`APPSTORE_AUDIT.md`) is the same. ## Reference Index Load only the reference you need for the current step — keep the working context lean. - `references/subagent-architecture.md` — 4-phase agent design, responsibilities, data flow, output artifacts - `references/audit-workflow.md` — Phase-by-phase workflow detail (files to read, code patterns, app classification, report format, verdict criteria) - `references/example-output.md` — Example `APPSTORE_AUDIT.md` snippet showing FAIL/WARNING entries - `references/edge-cases.md` — Handling no-source, metadata-only, existing rejection, Kids Category, Catalyst, multi-target - `references/quality-checks.md` — Acceptance criteria, step completion report format, static-audit limits, common red-flag patterns - `references/guidelines.md` — Full 150+ App Store guideline checklist plus Top 20 Rejection Triggers ## Audit Workflow (Summary) The audit always runs through four phases. Full detail is in `references/audit-workflow.md`. ### Phase 1: Understand the App Read project config (pbxproj, Info.plist, entitlements, Podfile/Package.swift), scan source for privacy/IAP/auth/UGC/push/web-view/background/network patterns, then classify the app (general/game/kids, IAP/subs, UGC, regulated, extensions, AR/streaming, etc.) so you know which guideline sections apply. ### Phase 2: Run the Audit Load `references/guidelines.md`. For each guideline, assign one of **PASS / FAIL / WARNING / N/A**. Start with the "Top 20 Rejection Triggers" at the bottom of that file. Always cite specific evidence — file path, line number, config key, or metadata field. Never use vague language like "might have issues." ### Phase 3: Generate the Report Write `APPSTORE_AUDIT.md` to the project root using the format in `references/audit-workflow.md` and the example in `references/example-output.md`. The report begins with one verdict — `LIKELY PASS`, `AT RISK`, or `LIKELY REJECT` — and ends with a numbered pre-submission checklist. ### Phase 4: Offer to Fix After presenting the report, offer to implement code-level fixes (privacy descriptions, restore-purchases, account-deletion flow, UIWebView → WKWebView). **Confirm explicit user approval per FAIL ID before editing any file.** Provide exact text/configuration for metadata changes. **Never modify `.entitlements` or App Store Connect configuration.** ## Error Handling & Confirmation - **Missing project files** — If `*.xcodeproj`, `Info.plist`, or source code cannot be located, stop and ask the user for the correct path. Do not guess. - **Ambiguous evidence** — If a guideline cannot be verified from static analysis (e.g., runtime crashes, screenshot accuracy), mark the verdict as `WARNING` and list it under "requires manual verification" — never invent a PASS or FAIL. - **Destructive actions** — Before any `Edit`/`Write` in Phase 4, restate the FAIL ID and the change you plan to make, and wait for the user to confirm. If the user says no, skip that fix and continue. - **Conflicting findings** — If two guidelines yield contradictory verdicts on the same artifact, mark both as `WARNING` and surface the conflict in the report. - **Existing report** — If `APPSTORE_AUDIT.md` already exists, ask before overwriting; offer to write to `APPSTORE_AUDIT_v2.md` instead. ## Expected Output The skill produces `APPSTORE_AUDIT.md` at the project root. Minimal expected shape: ```markdown # App Store Review Audit Report **App:** NutriTrack – Meal Planner **Date:** 2026-04-19 **Platform:** iOS 16+ ## Verdict: AT RISK - Total checks: 47 | Pass: 38 | Fail: 2 | Warning: 5 | N/A: 2 ## Critical Issues (FAIL) ### 5.1.1 — Account Deletion **Verdict:** FAIL **Evidence:** `AccountViewController.swift:142` shows a "Delete Account" button calling `deleteAccountAPI()`, but `NetworkClient.swift:87` returns 501. **Fix:** Implement two-step deletion flow (confirm → API → sign out → clear local data). ## Pre-Submission Checklist 1. [ ] Implement account deletion flow (5.1.1) 2. [ ] Replace UIWebView with WKWebView (4.2) ``` Full example with warnings and metadata sections: `references/example-output.md`. ## Verdict Criteria - **LIKELY PASS** — Zero FAILs; few/minor warnings. - **AT RISK** — Zero FAILs but multiple grey-area warnings, OR 1-2 minor easy-fix FAILs. - **LIKELY REJECT** — Any FAIL on a Top 20 trigger, or 3+ FAILs overall. ## Acceptance Criteria (Summary) A successful run satisfies the full checklist in `references/quality-checks.md`. The non-negotiables: - `APPSTORE_AUDIT.md` exists at the project root. - Verdict line uses exactly `LIKELY PASS`, `AT RISK`, or `LIKELY REJECT`. - Every Top 20 rejection trigger has a verdict. - Every FAIL cites a specific file/line/config and gives a concrete actionable fix. - A numbered pre-submission checklist closes the report. - Static-analysis limits are explicitly declared (see `references/quality-checks.md` for the list of items requiring manual verification). - Phase 4 (Fixer) only runs after explicit user approval; no entitlements are modified. ## Step Completion Reports After each major phase, output a status report. Format and per-phase check names live in `references/quality-checks.md` (section "Step Completion Reports"). Use `√` for pass, `×` for fail, `—` for context. ## Edge Cases See `references/edge-cases.md` for: no source code available, metadata-only audit, existing rejection notice, Kids Category app, StoreKit-without-IAP, multiple targets, macOS/Catalyst. ## Common Red Flags Quick-reference watch lists for privacy, IAP, metadata, and design red flags are in `references/quality-checks.md` (section "Common Patterns to Watch For"). Load it during Phase 2 to speed up triage. ## Tone and Delivery Be direct and helpful, like a senior iOS developer doing a pre-submission review for a colleague. Don't sugarcoat — a rejected app costs more time than honest feedback. Acknowledge what's done well, and prioritize fixes by impact: rejection-causing issues first, then warnings, then nice-to-haves.
Related in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.