From axiom
Guides app submission to the App Store, handling rejections, writing appeals, and managing App Store Connect metadata, privacy manifests, age ratings, and export compliance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/axiom:axiom-shippingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**You MUST use this skill when preparing to submit ANY app, handling App Store rejections, or working on release workflow.**
You MUST use this skill when preparing to submit ANY app, handling App Store rejections, or working on release workflow.
Use this skill when you encounter:
| Symptom / Task | Reference |
|---|---|
| How do I submit my app? | See skills/app-store-submission.md |
| Pre-flight checklist | See skills/app-store-submission.md |
| First-time submission | See skills/app-store-submission.md |
| Encryption compliance | See skills/app-store-submission.md |
| Accessibility Nutrition Labels | See skills/app-store-submission.md |
| Metadata field requirements | See skills/app-store-ref.md |
Product Page Header, Asset Library, search visuals OS27 | See skills/app-store-ref.md (Part 11) |
Retention Messaging (subscription cancellation flow) OS27 | See skills/app-store-ref.md (Part 11) |
Group / volume subscription selling (ABM, ASM, volume pricing) OS27 | See skills/app-store-ref.md (Part 11) |
| Guideline number lookup | See skills/app-store-ref.md |
| Privacy manifest schema | See skills/app-store-ref.md |
| Age rating tiers | See skills/app-store-ref.md |
| EU DSA compliance | See skills/app-store-ref.md |
| WWDC25/WWDC26 ASC changes | See skills/app-store-ref.md |
| App was rejected | See skills/app-store-diag.md |
| Guideline 2.1/4.2/4.3 rejection | See skills/app-store-diag.md |
| Writing an appeal | See skills/app-store-diag.md |
| Repeated rejections | See skills/app-store-diag.md |
| App Review Guidelines reference | See skills/app-review-guidelines.md |
| Expert review checklist | See skills/expert-review-checklist.md |
| Crash data in App Store Connect | See skills/app-store-connect-ref.md |
| TestFlight crash reports | See skills/app-store-connect-ref.md |
| ASC metrics dashboards | See skills/app-store-connect-ref.md |
| Beta tester crash report | See skills/testflight-triage.md |
| Production corpus triage (Sentry, ASC — multiple grouped issues) | See skills/production-triage.md + triage-analyzer agent or /axiom:triage |
| Crash log symbolication (.ips / MetricKit / .crash) | See axiom-tools (skills/xcsym-ref.md) or /axiom:analyze-crash; skills/testflight-triage.md for the full TF workflow |
| Automate App Store Connect | See skills/asc-mcp.md |
| Submit build programmatically | See skills/asc-mcp.md |
| Manage TestFlight via MCP | See skills/asc-mcp.md |
| ITMS signing error on upload | See axiom-security (skills/code-signing-diag.md) |
| Certificate/profile mismatch | See axiom-security (skills/code-signing-diag.md) |
| Code signing setup | See axiom-security (skills/code-signing.md) |
| App Clips (size tiers, invocation, AASA, launch experience) | See skills/app-clips.md |
| App Clip entitlements / size / data-sharing reference | See skills/app-clips-ref.md |
| Apple Pay / Wallet / Tap to Pay payments | See axiom-payments suite |
| Shipping update with Claude model-ID change (4.6 → 4.7, etc.) | See claude-api skill (external) + this skill for submission |
| Switching cloud AI provider in-app (OpenAI → Claude, etc.) | See claude-api skill (external) + this skill for submission |
Triggers:
Why app-store-submission: Discipline skill with 8 anti-patterns, decision trees, and pressure scenarios. Prevents the mistakes that cause 90% of rejections.
Reference: skills/app-store-submission.md
Triggers:
Why app-store-ref: 11-part reference covering every metadata field, guideline, and compliance requirement with exact specifications.
Reference: skills/app-store-ref.md
Triggers:
Why app-store-diag: 9 diagnostic patterns mapping rejection types to root causes and fixes, including subjective rejections (4.2/4.3, 1.x). Includes appeal writing guidance and crisis scenario for repeated rejections.
Reference: skills/app-store-diag.md
Triggers:
Why security-privacy-scanner: Autonomous agent that scans for security vulnerabilities and privacy compliance issues that cause rejections.
Invoke: Launch security-privacy-scanner agent or /axiom:audit security
Triggers:
Why iap-auditor: Scans IAP code for the patterns that cause StoreKit rejections.
Invoke: Launch iap-auditor agent
Triggers:
Why screenshot-validator: Multimodal agent that visually inspects each screenshot for placeholder text, wrong dimensions, debug artifacts, broken UI, and competitor references. Catches issues that manual review misses.
Invoke: Launch screenshot-validator agent or /axiom:audit screenshots
Triggers:
Why asc-mcp: Workflow-focused skill teaching Claude to use asc-mcp MCP tools for release pipelines, TestFlight distribution, review management, and feedback triage — all without leaving Claude Code.
Reference: skills/asc-mcp.md
Triggers:
Why app-store-connect-ref: ASC navigation for crash dashboards, TestFlight feedback, performance metrics, and data export workflows.
Reference: skills/app-store-connect-ref.md
Triggers:
Why testflight-triage: Systematic crash triage from symbolication through root cause analysis. Uses xcsym as the first step (parse → discover dSYMs → symbolicate → categorize with pattern_tag → emit structured JSON).
Reference: skills/testflight-triage.md. For the xcsym subcommand/exit-code reference, see axiom-tools (skills/xcsym-ref.md). For the one-call agent workflow, /axiom:analyze-crash.
Triggers:
Why production-triage: Corpus-level triage requires fetching from an aggregator, classifying each issue, noise-flagging suspension false-positives, and clustering into root-cause families. testflight-triage covers the Organizer/single-file path; production-triage covers the aggregate/multi-issue path.
Reference: skills/production-triage.md (fetch + NormalizedReport schema + flag-never-hide rule). Agent: triage-analyzer or /axiom:triage sentry / /axiom:triage asc.
Triggers:
Why code-signing: Distribution signing errors are the #1 cause of upload failures. Diagnosing with CLI tools takes 5 minutes. code-signing-diag has 6 decision trees mapping ITMS errors to root causes.
Reference: See axiom-security (skills/code-signing-diag.md) (troubleshooting) or See axiom-security (skills/code-signing.md) (setup)
Triggers:
Why app-clips: App Clips ship embedded in the full app and live under tight size (10/15/100 MB), entitlement, and capability limits. The discipline covers the size tiers, entitlements, AASA, and data handoff; the reference has the tables.
Reference: skills/app-clips.md, skills/app-clips-ref.md
digraph shipping {
"Shipping question?" [shape=diamond];
"Rejected?" [shape=diamond];
"Post-submission monitoring?" [shape=diamond];
"Beta crash triage?" [shape=diamond];
"Automate via MCP?" [shape=diamond];
"Screenshot review?" [shape=diamond];
"Need specific specs?" [shape=diamond];
"IAP issue?" [shape=diamond];
"Want code scan?" [shape=diamond];
"Signing error?" [shape=diamond];
"skills/app-store-submission.md" [shape=box, label="app-store-submission\n(pre-flight checklist)"];
"skills/app-store-ref.md" [shape=box, label="app-store-ref\n(metadata/guideline specs)"];
"skills/app-store-diag.md" [shape=box, label="app-store-diag\n(rejection troubleshooting)"];
"skills/app-store-connect-ref.md" [shape=box, label="app-store-connect-ref\n(ASC dashboards/metrics)"];
"skills/testflight-triage.md" [shape=box, label="testflight-triage\n(beta crash triage)"];
"security-privacy-scanner" [shape=box, label="security-privacy-scanner\n(Agent)"];
"iap-auditor" [shape=box, label="iap-auditor\n(Agent)"];
"screenshot-validator" [shape=box, label="screenshot-validator\n(Agent)"];
"skills/asc-mcp.md" [shape=box, label="asc-mcp\n(MCP tool workflows)"];
"axiom-security/code-signing" [shape=box, label="axiom-security\n(distribution signing)"];
"Shipping question?" -> "Rejected?" [label="yes, about to submit or general"];
"Rejected?" -> "skills/app-store-diag.md" [label="yes, app was rejected"];
"Rejected?" -> "Post-submission monitoring?" [label="no"];
"Post-submission monitoring?" -> "skills/app-store-connect-ref.md" [label="yes, crash data/metrics"];
"Post-submission monitoring?" -> "Beta crash triage?" [label="no"];
"Beta crash triage?" -> "skills/testflight-triage.md" [label="yes, beta crash/symbolication"];
"Beta crash triage?" -> "Automate via MCP?" [label="no"];
"Automate via MCP?" -> "skills/asc-mcp.md" [label="yes, programmatic ASC access"];
"Automate via MCP?" -> "Screenshot review?" [label="no"];
"Screenshot review?" -> "screenshot-validator" [label="yes, validate screenshots"];
"Screenshot review?" -> "Need specific specs?" [label="no"];
"Need specific specs?" -> "skills/app-store-ref.md" [label="yes, looking up field/guideline"];
"Need specific specs?" -> "IAP issue?" [label="no"];
"IAP issue?" -> "iap-auditor" [label="yes"];
"IAP issue?" -> "Want code scan?" [label="no"];
"Want code scan?" -> "Signing error?" [label="no"];
"Want code scan?" -> "security-privacy-scanner" [label="yes, scan for privacy/security"];
"Signing error?" -> "axiom-security/code-signing" [label="yes, ITMS/cert/profile error"];
"Signing error?" -> "skills/app-store-submission.md" [label="no, general prep"];
}
Simplified:
skills/app-store-diag.mdskills/app-store-connect-ref.mdskills/testflight-triage.mdskills/production-triage.md + triage-analyzer agentskills/asc-mcp.mdscreenshot-validator (Agent)skills/app-store-ref.mdiap-auditor (Agent)security-privacy-scanner (Agent)skills/app-store-submission.mdskills/app-clips.md, skills/app-clips-ref.md| Thought | Reality |
|---|---|
| "I'll just submit and see what happens" | 40% of rejections are Guideline 2.1 (completeness). app-store-submission catches them in 10 min. |
| "I've submitted apps before, I know the process" | Requirements change yearly. Privacy manifests, age rating tiers, EU DSA, Accessibility Nutrition Labels are all new since 2024. |
| "The rejection is wrong, I'll just resubmit" | Resubmitting without changes wastes 24-48 hours per cycle. app-store-diag finds the root cause. |
| "Privacy manifests are only for big apps" | Every app using Required Reason APIs needs a manifest since May 2024. Missing = automatic rejection. |
| "I'll add the metadata later" | Missing metadata blocks submission entirely. app-store-ref has the complete field list. |
| "It's just a bug fix, I don't need a full checklist" | Bug fix updates still need What's New text, correct screenshots, and valid build. app-store-submission covers it. |
| "I'll just eyeball the screenshots myself" | Human review misses dimension mismatches (even 1px off = rejection), subtle placeholder text, and debug indicators. A single missed issue costs 24-48 hours in resubmission. screenshot-validator catches it in 2 minutes. |
| "I'll just do it in the ASC web dashboard" | If asc-mcp is configured, MCP tools are faster for bulk operations — distributing builds, responding to reviews, creating versions. asc-mcp has the workflow. |
| "Upload failed with ITMS error, let me re-archive" | ITMS signing errors are configuration — wrong cert, expired profile, missing entitlement. Re-archiving with the same config produces the same result. code-signing-diag has the fix. |
| "It's just a model ID swap (Claude 4.6 → 4.7)" | 4.6 → 4.7 removed temperature, top_p, top_k, and prefill from the Messages API. Build succeeds; runtime returns HTTP 400 after submission. Read claude-api (external) and test the live endpoint before uploading. |
| "My App Clip can be 100 MB, so I'll add an App Clip Code too" | The 100 MB tier (iOS 17+) is digital-invocation-only; adding any NFC/QR/App Clip Code drops the limit to 15 MB. See skills/app-clips.md. |
Cloud Claude migration (claude-api skill, ships outside Axiom) — mandatory before shipping any Claude model-ID change. Opus 4.7 removed temperature, top_p, top_k, and prefill from the Messages API; code that built successfully on 4.6 returns HTTP 400 at runtime. An App Store update that ships this regression is an expedited-review situation. The claude-api skill automates the migration (model ID swap, sampling-param removal, prefill replacement) and enforces prompt caching from day one. Treat it as part of your pre-flight checklist, not a side reference.
Do NOT use axiom-shipping for these — use the correct skill instead:
| Issue | Correct Skill | Why NOT axiom-shipping |
|---|---|---|
| Build fails before archiving | axiom-build | Environment/build issue, not submission |
| SwiftData migration crash | axiom-data | Schema issue, not App Store |
| Privacy manifest coding (writing the file) | axiom-build | security-privacy-scanner handles code scanning |
| StoreKit 2 implementation (writing IAP code) | axiom-integration | in-app-purchases / storekit-ref covers implementation |
| Performance issues found during testing | axiom-performance | Profiling issue, not submission |
| Accessibility implementation | axiom-accessibility | Code-level accessibility, not App Store labels |
axiom-shipping is for the submission workflow, not code implementation:
User: "How do I submit my app to the App Store?"
→ See skills/app-store-submission.md
User: "My app was rejected for Guideline 2.1"
→ See skills/app-store-diag.md
User: "What screenshots do I need?"
→ See skills/app-store-ref.md
User: "What fields are required in App Store Connect?"
→ See skills/app-store-ref.md
User: "How do I fill out the age rating questionnaire?"
→ See skills/app-store-ref.md
User: "Do I need an encryption compliance declaration?"
→ See skills/app-store-submission.md
User: "My app keeps getting rejected, what do I do?"
→ See skills/app-store-diag.md
User: "How do I appeal an App Store rejection?"
→ See skills/app-store-diag.md
User: "My app was rejected for Guideline 4.2 minimum functionality"
→ See skills/app-store-diag.md
User: "Rejected for being a web wrapper / duplicate app"
→ See skills/app-store-diag.md
User: "Rejection for user-generated content without moderation"
→ See skills/app-store-diag.md
User: "Kids category compliance rejection"
→ See skills/app-store-diag.md
User: "Scan my code for App Store compliance issues"
→ Launch security-privacy-scanner agent
User: "Check my IAP implementation before submission"
→ Launch iap-auditor agent
User: "Check my App Store screenshots in ~/Screenshots"
→ Launch screenshot-validator agent
User: "Are my screenshots the right dimensions?"
→ Launch screenshot-validator agent
User: "Triage my Sentry crashes"
→ Launch triage-analyzer agent (or /axiom:triage sentry)
User: "What are the top crash families in production right now?"
→ Launch triage-analyzer agent (or /axiom:triage sentry)
User: "Show me which ASC issues to fix first"
→ Launch triage-analyzer agent (or /axiom:triage asc)
User: "How do I find crash data in App Store Connect?"
→ See skills/app-store-connect-ref.md
User: "Where are my TestFlight crash reports in ASC?"
→ See skills/app-store-connect-ref.md
User: "What's new in App Store Connect this year?"
→ See skills/app-store-ref.md
User: "I need to set up DSA trader status for the EU"
→ See skills/app-store-ref.md
User: "What are Accessibility Nutrition Labels?"
→ See skills/app-store-submission.md
User: "This is my first app submission ever"
→ See skills/app-store-submission.md
User: "Submit this build to App Store programmatically"
→ See skills/asc-mcp.md
User: "Set up asc-mcp for App Store Connect"
→ See skills/asc-mcp.md
User: "Distribute build 42 to my beta testers via MCP"
→ See skills/asc-mcp.md
User: "Respond to negative App Store reviews from Claude"
→ See skills/asc-mcp.md
User: "ITMS-90035 Invalid Signature when uploading" → See axiom-security (skills/code-signing-diag.md)
User: "My provisioning profile expired and I can't upload" → See axiom-security (skills/code-signing-diag.md)
User: "How do I add an App Clip?" / "What's the App Clip size limit?" / "My App Clip link does nothing"
→ See skills/app-clips.md
npx claudepluginhub charleswiltgen/axiom --plugin axiomAutomates iOS/macOS app deployment to App Store Connect using asc CLI: TestFlight builds, App Store submissions, metadata/screenshots uploads, certificates/profiles management, review status checks, and Xcode Cloud workflows.
Scans iOS/macOS projects for App Store rejection patterns before submission. Checks Xcode config, source code, metadata, IAP setup, and privacy manifests.
Scans iOS/macOS/tvOS/watchOS/visionOS app code for App Store rejection risks. Runs greenlight CLI checks and helps fix critical issues before submission.