From apple-dev
Generates App Store release documentation including submission guide, assets, privacy compliance, and marketing strategy. Creates RELEASE_SPEC.md for app launch. Use when preparing for App Store submission.
npx claudepluginhub autisticaf/autisticaf-claude-code-marketplace --plugin apple-devThis skill uses the workspace's default tool permissions.
> **First step:** Tell the user: "product-release-spec skill loaded."
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
First step: Tell the user: "product-release-spec skill loaded."
Generate comprehensive App Store release and deployment documentation for iOS/macOS apps.
This skill activates when the user says:
You are a Release Manager AI agent specializing in iOS/macOS app releases and App Store submissions. Your job is to transform all previous specifications (PRD, Architecture, UX, Implementation, Testing, ASO) into a comprehensive release specification that guides the user through every step of preparing, submitting, and launching their app on the App Store.
Before activating this skill, ensure:
Read and extract information from:
Product development plan (product-plan-*.md)
docs/ARCHITECTURE.md
docs/IMPLEMENTATION_GUIDE.md
docs/TEST_SPEC.md
Generate: docs/RELEASE_SPEC.md
Structure:
# Release Specification: [App Name]
**Version**: 1.0.0
**Last Updated**: [Date]
**Release Manager**: Release Manager AI
**Platform**: iOS [Version]+
**Target Release Date**: [Date]
---
## 0. Quick Start Checklist
For the impatient release manager:
**Week -2: Preparation**
- [ ] All development complete (from IMPLEMENTATION_GUIDE)
- [ ] All tests passing (from TEST_SPEC)
- [ ] App Store assets prepared (see Section 2)
- [ ] Privacy manifest added
- [ ] TestFlight beta started
**Week -1: Beta Testing**
- [ ] Beta testers recruited (20-50 people)
- [ ] Feedback collected and addressed
- [ ] No P0 bugs reported in last 3 days
- [ ] Crash-free rate > 99.5%
**Day of Submission**:
- [ ] Final build archived
- [ ] App validated in Xcode (no errors)
- [ ] App Store Connect metadata filled
- [ ] Submit for review
- [ ] Monitor review status daily
**Post-Submission**:
- [ ] App approved (24-48 hours typically)
- [ ] Choose release date or release immediately
- [ ] Monitor crash reports and reviews
- [ ] Respond to user reviews within 24-48 hours
---
## 1. App Store Metadata
All metadata is pre-filled from ASO optimization. Verify and copy to App Store Connect.
### 1.1 Basic Information
**App Name**: [From ASO optimization]
- Character limit: 30 characters
- Must be unique on App Store
- Can include keywords for ASO
**Subtitle**: [From ASO optimization]
- Character limit: 30 characters
- Summarizes app in one line
- Appears below app name in search results
**Primary Category**: [Choose most relevant]
- Productivity
- Business
- Lifestyle
- Finance
- Health & Fitness
- Social Networking
- Photo & Video
- Entertainment
- Utilities
- Education
- [Other - see full list in App Store Connect]
**Secondary Category**: [Optional]
- Choose if app fits multiple categories
- Increases discoverability
**Content Rating**:
- [ ] 4+ (No objectionable content)
- [ ] 9+ (Infrequent/mild content)
- [ ] 12+ (Frequent/intense content)
- [ ] 17+ (Frequent/intense mature content)
**Pricing**:
- [Free] (recommended for MVP launch)
- [Paid] - Price Tier: [Select tier, e.g., $0.99, $2.99, $4.99]
- [Freemium] - Free with In-App Purchases
### 1.2 Description
**Promotional Text** (170 characters, updateable without app review):
[Hook from ASO optimization - first 170 characters]
**Full Description** (4000 characters max):
[Complete description from ASO optimization]
[Paste the full ASO-optimized description here]
Features: • [Feature 1 from PRD - user benefit focused] • [Feature 2 from PRD] • [Feature 3 from PRD] • [Feature 4 from PRD]
[Social proof section if available]
[Call to action]
**What's New** (Version 1.0.0):
🎉 Initial Release!
Introducing [App Name]! [One-line value proposition]
Key Features: • [Feature 1] • [Feature 2] • [Feature 3]
We'd love to hear your feedback! Rate us and let us know how we can improve.
### 1.3 Keywords
**Keyword Field** (100 characters, comma-separated, no spaces):
[High-priority keywords from ASO optimization, comma-separated, exactly 100 chars] Example: productivity,task,manager,organize,notes,planner,calendar,todo,reminder
**Keyword Strategy**:
- Use high-priority keywords from ASO optimization
- No spaces (use commas only)
- Don't repeat app name (automatically indexed)
- Don't use competitor names
- Use both singular and plural if room
### 1.4 Support Information
**Support URL**: https://[yourwebsite].com/support
- Must be live and functional
- Include FAQ, contact form, or email
- Respond to inquiries within 24-48 hours
**Marketing URL**: https://[yourwebsite].com
- Landing page for the app
- Can include features, screenshots, testimonials
- Optional but recommended
**Privacy Policy URL**: https://[yourwebsite].com/privacy
- **REQUIRED** for all apps
- Must disclose all data collection
- Must be accessible and readable
- Can use privacy policy generator if needed
**Copyright**: © 2024 [Your Company Name]
---
## 2. App Store Assets
### 2.1 App Icon
**Requirements**:
- Size: 1024x1024 pixels
- Format: PNG (no transparency)
- Color space: sRGB or Display P3
- File size: < 1 MB
**Design Specifications** (from DESIGN_SYSTEM.md):
Based on your brand colors and design system:
Background: [Brand primary color or gradient] Icon/Symbol: [From brand identity] Style: [Flat, skeuomorphic, gradient - match design system]
Design Tips:
**Creation**:
1. Design in Figma/Sketch/Illustrator at 1024x1024px
2. Export as PNG
3. Add to `Assets.xcassets/AppIcon.appiconset/`
4. Xcode will generate all required sizes automatically
**Tools**:
- [App Icon Generator](https://appicon.co) - Generate from 1024px source
- [IconKit](https://apps.apple.com/app/iconkit/id507135296) - Mac app for icon generation
### 2.2 Screenshots
**Required Sizes**:
- **iPhone 6.7" Display** (1290 x 2796 px) - iPhone 15 Pro Max - **REQUIRED**
- **iPhone 6.5" Display** (1242 x 2688 px) - iPhone 11 Pro Max - **Recommended**
- **iPad Pro 12.9" Display** (2048 x 2732 px) - If supporting iPad
**Quantity**: 3-10 screenshots per size (5 recommended)
**Screenshot Strategy** (from ASO optimization):
**Screenshot 1: Hero/Value Proposition**
Content: [Main screen showing primary feature] Caption: "[Benefit-focused headline from ASO]"
Design:
Device Frame: Optional (makes it look polished)
**Screenshot 2: Key Feature #1**
Content: [Feature in action - from PRD P0 features] Caption: "[Clear outcome or benefit]"
Example for task manager: Show: Today view with tasks checked off Caption: "Get things done. Stay organized."
**Screenshot 3: Key Feature #2**
Content: [Second most important feature] Caption: "[Supporting benefit]"
**Screenshot 4: Key Feature #3 or Social Proof**
Content: [Third feature OR testimonial/rating visual] Caption: "[Supporting benefit]" OR "Loved by users - 4.8★ rating"
**Screenshot 5: Call to Action**
Content: [Final screen with clear CTA] Caption: "Download now and [achieve benefit]"
**Design Tips**:
- Use localized screenshots (translate text)
- Show diverse representation
- Use actual app data (not lorem ipsum)
- Keep text minimal and large (readable on phone)
- Maintain consistent style across all screenshots
- Use status bar with good signal/battery (looks polished)
**Tools**:
- [Screenshot](https://screenshot.app) - Mac app for creating App Store screenshots
- [DaVinci Apps](https://www.davinciapps.com) - Web-based screenshot builder
- [Previewed](https://previewed.app) - Screenshot mockup tool
**Capture from Simulator**:
```bash
# Launch app in simulator (iPhone 15 Pro Max)
# Navigate to screen
# Cmd+S to save screenshot
# Screenshots saved to ~/Desktop
Requirements:
Storyboard (from ASO optimization):
0-3s: Problem statement
Visual: User frustrated with current solution
Voiceover/Text: "Tired of [pain point]?"
4-10s: Solution demonstration
Visual: App in action, core feature
Voiceover/Text: "Meet [App Name]. [Value proposition]"
11-20s: Key benefits showcase
Visual: Quick cuts of 3 key features
Voiceover/Text: "• [Benefit 1] • [Benefit 2] • [Benefit 3]"
21-25s: Additional features
Visual: Supporting features
Voiceover/Text: "Plus [feature 4], [feature 5]"
26-30s: Call to action
Visual: App icon + brand
Text: "Download [App Name] today!"
Production Tips:
Music Sources (royalty-free):
Location: [AppName]/Resources/PrivacyInfo.xcprivacy
Template:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Tracking -->
<key>NSPrivacyTracking</key>
<false/> <!-- Set to true if using third-party tracking SDKs -->
<key>NSPrivacyTrackingDomains</key>
<array>
<!-- List domains used for tracking (if NSPrivacyTracking is true) -->
</array>
<!-- Data Collection -->
<key>NSPrivacyCollectedDataTypes</key>
<array>
<!-- Example: If collecting email for account -->
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeEmailAddress</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<true/> <!-- Linked to user identity -->
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/> <!-- Not used for tracking -->
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
</array>
</dict>
<!-- Add more data types if collecting: -->
<!-- NSPrivacyCollectedDataTypeName -->
<!-- NSPrivacyCollectedDataTypePhoneNumber -->
<!-- NSPrivacyCollectedDataTypePhysicalAddress -->
<!-- NSPrivacyCollectedDataTypeUserID -->
<!-- NSPrivacyCollectedDataTypePurchaseHistory -->
<!-- NSPrivacyCollectedDataTypeLocation -->
<!-- NSPrivacyCollectedDataTypePhotos -->
<!-- NSPrivacyCollectedDataTypeContacts -->
<!-- NSPrivacyCollectedDataTypeCrashData -->
<!-- NSPrivacyCollectedDataTypePerformanceData -->
<!-- NSPrivacyCollectedDataTypeCustomerSupport -->
<!-- [See Apple documentation for full list] -->
</array>
<!-- Required Reason API Usage -->
<key>NSPrivacyAccessedAPITypes</key>
<array>
<!-- Example: If using UserDefaults for app state -->
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string> <!-- App functionality -->
</array>
</dict>
<!-- Add if using: -->
<!-- File timestamp APIs (NSPrivacyAccessedAPICategoryFileTimestamp) -->
<!-- System boot time APIs (NSPrivacyAccessedAPICategorySystemBootTime) -->
<!-- Disk space APIs (NSPrivacyAccessedAPICategoryDiskSpace) -->
<!-- Active keyboards APIs (NSPrivacyAccessedAPICategoryActiveKeyboards) -->
<!-- [See Apple documentation for required reasons codes] -->
</array>
</dict>
</plist>
How to Fill Out:
Resources:
When filling out privacy questions in App Store Connect:
Data Collection Questions:
For each data type (Contact Info, Health, Financial, Location, etc.):
Example (Email for account creation):
Data Type: Email Address
Collected: Yes
Linked to User: Yes
Used for Tracking: No
Purposes: App Functionality
Complete for all data from ARCHITECTURE.md:
Answer honestly based on app content:
Violence: None / Cartoon or Fantasy / Realistic / [etc.] Sexual Content: None / Infrequent/Mild / Frequent/Intense Profanity: None / Infrequent/Mild / Frequent/Intense Horror/Fear Themes: None / Infrequent/Mild / Frequent/Intense Mature/Suggestive Themes: None / Infrequent/Mild / Frequent/Intense Alcohol, Tobacco, Drugs: None / Infrequent/Mild / Frequent/Intense Medical/Treatment Info: None / Infrequent/Mild / Frequent/Intense Gambling: None / Simulated Gambling / [etc.] Contests: None / Infrequent/Mild / Frequent/Intense
Resulting Rating: Based on answers, App Store will assign 4+, 9+, 12+, or 17+
For most productivity/business apps: All "None" → 4+ rating
Semantic Versioning: MAJOR.MINOR.PATCH
Version: 1.0.0
├── MAJOR (1): Breaking changes, major new features
├── MINOR (0): New features, backwards compatible
└── PATCH (0): Bug fixes only
Examples:
- 1.0.0: Initial release
- 1.0.1: Bug fix (crash fix, minor issue)
- 1.1.0: New feature (added dark mode)
- 2.0.0: Major update (complete redesign)
Build Number: Auto-increment or date-based
Option 1: Auto-increment
1, 2, 3, 4, ...
Xcode can auto-increment on archive
Option 2: Date-based
20240115 (YYYYMMDD)
20240115.1 (if multiple builds per day)
Set in Xcode:
1.0.01 or 20240115Debug Configuration:
Optimization Level: None [-O0]
Swift Compilation Mode: Incremental
Active Compilation Conditions: DEBUG
Other Swift Flags: -Xfrontend -debug-time-function-bodies
Release Configuration:
Optimization Level: Optimize for Speed [-O]
Swift Compilation Mode: Whole Module Optimization
Strip Swift Symbols: Yes
Strip Debug Symbols During Copy: Yes
Validate Workspace: Yes
Dead Code Stripping: Yes
Recommended Settings:
Automatic Signing (Recommended for individuals/small teams):
Manual Signing (For larger teams with multiple developers):
Certificate Types:
Add if needed (based on ARCHITECTURE.md):
Configure in Xcode:
Before archiving and submitting, verify:
com.yourcompany.appname)App Information Tab:
Pricing and Availability Tab:
Version Information (under App Store → iOS App → Version):
In Xcode:
Alternative: Using Fastlane (automated):
# Install Fastlane
brew install fastlane
# Initialize
cd /path/to/project
fastlane init
# Edit Fastfile
# Add upload lane (see Section 9 for details)
# Upload to App Store Connect
fastlane release
In App Store Connect:
Review Timeline: Typically 24-48 hours (can be longer during holidays)
Status Updates:
Check Status:
If Rejected:
Rejection: "Your app crashed on launch or during use." Solution:
Rejection: "Your app appears to be a test or demo version." Solution:
Rejection: "Screenshots don't match the app." Solution:
Rejection: "App icon doesn't meet requirements." Solution:
Rejection: "Your app is too similar to other apps." Solution:
Rejection: "Privacy manifest missing or incomplete." Solution:
Rejection: "Privacy policy not accessible." Solution:
Rejection: "App privacy details don't match actual data collection." Solution:
Approved! Now what?
Option 1: Manual Release
Option 2: Automatic Release
Verify Live:
Announce Launch:
Daily Checks:
Crash Reports (Xcode Organizer → Crashes):
App Store Reviews:
Analytics (App Store Connect → Analytics):
Sales and Trends:
User Feedback:
Technical Metrics:
Positive Reviews (4-5 stars):
Thank you [Name]! We're thrilled you're enjoying [App Name]. If you have any suggestions, feel free to reach out at support@...
Constructive Negative Reviews (2-3 stars):
Thanks for the feedback, [Name]. We're sorry about [issue mentioned]. This has been fixed in the latest update. Please update the app and let us know if you're still experiencing issues. Contact us at support@... if you need help!
Harsh Negative Reviews (1 star, vague):
We're sorry you had a bad experience. Could you email us at support@... with more details? We'd love to make this right and improve the app for you.
Bug Reports in Reviews:
Thank you for reporting this, [Name]! We've identified the issue and will fix it in the next update. We've also emailed you directly. Sorry for the inconvenience!
Install Fastlane:
# Using Homebrew (Mac)
brew install fastlane
# Or using RubyGems
sudo gem install fastlane
Initialize Fastlane:
cd /path/to/your/project
fastlane init
Follow prompts:
fastlane/ directory with FastfileEdit fastlane/Fastfile:
# Fastfile
default_platform(:ios)
platform :ios do
# Variables
xcodeproj = "[AppName].xcodeproj"
scheme = "[AppName]"
bundle_id = "com.yourcompany.appname"
# Before all lanes
before_all do
# Ensure git status is clean
ensure_git_status_clean
end
# Lane: Run tests
desc "Run all tests"
lane :test do
run_tests(
scheme: scheme,
devices: ["iPhone 15 Pro"]
)
end
# Lane: Build app
desc "Build the app"
lane :build do
gym(
scheme: scheme,
export_method: "app-store",
output_directory: "./build"
)
end
# Lane: Upload to TestFlight
desc "Upload to TestFlight"
lane :beta do
# Increment build number
increment_build_number(xcodeproj: xcodeproj)
# Build
gym(
scheme: scheme,
export_method: "app-store"
)
# Upload
pilot(
skip_waiting_for_build_processing: false,
distribute_external: true, # Share with external testers
changelog: "Bug fixes and improvements"
)
end
# Lane: Release to App Store
desc "Upload to App Store and submit for review"
lane :release do
# Ensure main branch
ensure_git_branch(branch: "main")
# Run tests
test
# Increment version
version = prompt(text: "Enter version number (e.g., 1.0.0): ")
increment_version_number(version_number: version)
# Increment build
increment_build_number(xcodeproj: xcodeproj)
# Build
gym(
scheme: scheme,
export_method: "app-store"
)
# Upload to App Store Connect
deliver(
submit_for_review: true,
automatic_release: false,
force: true, # Skip HTML preview
metadata_path: "./fastlane/metadata",
screenshots_path: "./fastlane/screenshots"
)
# Tag release
add_git_tag(tag: "v#{version}")
push_git_tags
# Commit version bump
commit_version_bump(
message: "Version bump to #{version}",
xcodeproj: xcodeproj
)
push_to_git_remote
end
# Error handling
error do |lane, exception|
notification(
subtitle: "Failed to #{lane}",
message: exception.message
)
end
end
Setup metadata for automatic upload:
fastlane deliver init
This creates fastlane/metadata/ with folders for each locale:
fastlane/
└── metadata/
└── en-US/
├── description.txt # App description
├── keywords.txt # Keywords
├── marketing_url.txt # Marketing URL
├── name.txt # App name
├── privacy_url.txt # Privacy URL
├── release_notes.txt # What's New
├── subtitle.txt # Subtitle
└── support_url.txt # Support URL
Copy content from ASO optimization into these files.
Screenshots:
fastlane/screenshots/en-US/1_iphone65_1.png, 1_iphone65_2.png, etc.Create .github/workflows/release.yml:
name: product-release-spec
on:
push:
tags:
- 'v*' # Trigger on version tags (v1.0.0)
jobs:
release:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Install Fastlane
run: gem install fastlane
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0'
- name: Import Code Signing Certificates
uses: apple-actions/import-codesign-certs@v1
with:
p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
p12-password: ${{ secrets.CERTIFICATES_PASSWORD }}
- name: Download Provisioning Profiles
env:
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
run: |
fastlane match appstore --readonly
- name: Build and Upload to App Store
env:
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.APP_SPECIFIC_PASSWORD }}
run: |
fastlane release
- name: Notify on success
if: success()
run: echo "Successfully released to App Store!"
- name: Notify on failure
if: failure()
run: echo "Release failed!"
Setup Secrets in GitHub:
FASTLANE_USER: Your Apple IDFASTLANE_PASSWORD: Apple ID passwordAPP_SPECIFIC_PASSWORD: App-specific password (generate at appleid.apple.com)CERTIFICATES_P12: Base64-encoded .p12 certificateCERTIFICATES_PASSWORD: Password for .p12Timeline: 1-2 weeks after launch Goal: Fix critical bugs discovered post-launch
Process:
Bug Fixes & Improvements
• Fixed crash when [specific scenario]
• Improved [performance/stability]
• Minor UI adjustments
Thanks for your feedback! Keep it coming at support@...
Do NOT:
Timeline: 4-6 weeks after launch Goal: Add first deferred feature from PRD
Process:
New Feature: [Feature Name]
[Description of feature and benefit]
Also in this update:
• [Improvement 1]
• [Bug fix]
• [Performance improvement]
Love the app? Rate us ⭐⭐⭐⭐⭐
Timeline: 6-12 months after launch Goal: Major redesign or new features
Considerations:
Build Anticipation:
Assets Needed:
Morning of Launch:
Launch Announcement:
🎉 [App Name] is now live on the App Store!
[One-sentence value proposition]
[Key feature 1]
[Key feature 2]
[Key feature 3]
Download: [App Store link]
[Screenshot or demo GIF]
#iOS #ProductivityApp #AppLaunch
Post On:
Email List (if you have one):
Subject: [App Name] is Finally Here! 🎉
Hi [Name],
After [X] months of development, I'm thrilled to announce that [App Name] is now live on the App Store!
[Brief description of what it does and why you built it]
Key Features:
• [Feature 1]
• [Feature 2]
• [Feature 3]
[Personal story or unique value proposition]
Download it here: [App Store link]
I'd love to hear your feedback! Reply to this email or leave a review on the App Store.
Thank you for your support!
Best,
[Your name]
P.S. [CTA - share with friends, rate the app, etc.]
Engagement:
Content Marketing:
Reach Out:
Downloads:
Rating:
Crash-Free Rate:
Retention:
User Engagement:
Revenue (if paid/IAP):
Growth:
Quality:
Engagement:
Business:
Setup: support@yourdomain.com (or use yourname+appname@gmail.com)
Auto-Response:
Thank you for contacting [App Name] support!
We've received your message and will respond within 24-48 hours.
In the meantime, check out our FAQ: [link]
Common issues:
• [Issue 1]: [Quick fix]
• [Issue 2]: [Quick fix]
Best,
[App Name] Team
Create on your website: yourdomain.com/support
Common Questions:
Settings → Help & Support:
App Store Optimization:
Screenshot & Asset Creation:
CI/CD:
Analytics:
Crash Reporting:
Week -8 to -6: Development
Week -5 to -4: Testing & Polish
Week -3: Pre-Submission Prep
Week -2: TestFlight Beta
Week -1: Final Prep
Day 0: Submission
Day 1-2: Approval & Launch
Week 1-4: Post-Launch
Document History:
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0.0 | [Date] | Release Manager AI | Initial release specification created |
---
## Execution Instructions
When activated, follow these steps:
1. **Read All Specification Documents**
2. **Extract Release Information**
- App Store metadata (from ASO optimization)
- App name, subtitle, keywords, description
- Screenshot strategy
- Privacy requirements (from ARCHITECTURE)
- Technical details (dependencies, capabilities)
- Quality criteria (from TEST_SPEC)
3. **Generate App Store Metadata Section**
- Copy all ASO-optimized content
- Format for App Store Connect
- Include character counts
- Provide "What's New" for v1.0.0
4. **Generate Assets Section**
- App icon requirements and design notes
- Screenshot requirements and strategy (from ASO)
- App preview video storyboard (from ASO)
- Provide creation tips and tools
5. **Generate Privacy & Compliance Section**
- Privacy manifest template (based on ARCHITECTURE data collection)
- App Privacy details questionnaire
- Age rating guidance
6. **Generate Build Configuration Section**
- Version numbering strategy
- Debug vs Release configurations
- Code signing options
- Capabilities needed (from ARCHITECTURE)
7. **Generate Pre-Submission Checklist**
- Development complete checklist
- Testing complete (from TEST_SPEC)
- Assets prepared
- Metadata ready
- Privacy compliance
8. **Generate Submission Process Section**
- Step-by-step App Store Connect setup
- How to archive and upload
- How to submit for review
- How to monitor review status
9. **Generate Post-Launch Section**
- Release day checklist
- Monitoring guide (crashes, reviews, analytics)
- Review response templates
- Update strategy (v1.0.1, v1.1.0, v2.0.0)
10. **Generate Optional CI/CD Section**
- Fastlane setup and configuration
- GitHub Actions workflow
- Metadata and screenshot automation
11. **Generate Marketing Section**
- Pre-launch, launch day, post-launch activities
- Announcement templates
- Content marketing ideas
- Success metrics
12. **Write Complete Release Spec**
```
Write to: docs/RELEASE_SPEC.md
Target length: 2000-3000 lines
Format: Markdown with code examples and checklists
```
13. **Present Summary**
```
✅ Release Specification generated!
🚀 **Release Spec Summary**:
- App Store metadata: Pre-filled from ASO optimization
- Asset requirements: App icon, screenshots (5 per size), optional video
- Privacy compliance: Privacy manifest template, App Privacy guide
- Submission process: Complete step-by-step guide
- Post-launch monitoring: Crash reports, reviews, analytics
- Marketing strategy: Pre-launch, launch day, post-launch
- CI/CD automation: Fastlane and GitHub Actions setup (optional)
- Update strategy: Bug fixes (1.0.1), features (1.1.0), major (2.0.0)
**What's Included**:
✅ Complete App Store Connect setup guide
✅ Privacy manifest and compliance checklist
✅ Pre-submission checklist (50+ items)
✅ Step-by-step submission process
✅ Common rejection reasons and solutions
✅ Post-approval actions and monitoring
✅ Marketing and launch strategy
✅ Support infrastructure setup
✅ Release timeline template
**Next Steps**:
1. Review the release spec in docs/RELEASE_SPEC.md
2. Prepare App Store assets (icon, screenshots)
3. Complete pre-submission checklist
4. Run TestFlight beta (2 weeks)
5. Submit to App Store when ready
6. Launch and monitor!
**Developer can now**:
- Follow step-by-step to submit to App Store
- Avoid common rejection reasons
- Launch with confidence
- Monitor and iterate post-launch
Ready to launch your app? 🚀
```
14. **Iterate Based on Feedback**
If user requests changes:
- Update specific sections
- Add missing steps
- Clarify submission process
- Expand marketing strategy
---
## Quality Guidelines
1. **Be Complete**: Cover every step from build to launch
- Don't assume knowledge
- Provide exact steps (click this, type that)
- Include screenshots or descriptions of what to expect
2. **Use ASO Content**: Pre-fill all metadata
- Don't make user re-write description
- Copy from ASO optimization exactly
- Verify character counts
3. **Provide Checklists**: Make it actionable
- Pre-submission checklist
- Release day checklist
- Post-launch monitoring checklist
4. **Include Troubleshooting**: Common rejection reasons
- Guideline violations
- Privacy issues
- Metadata problems
- Solutions for each
5. **Be Encouraging**: Launching is exciting but stressful
- Acknowledge the achievement
- Provide support resources
- Build confidence
6. **Think Post-Launch**: Don't stop at submission
- Monitoring strategy
- Review response templates
- Update strategy
- Marketing and growth
---
## Integration with Workflow
This skill is typically:
- **Sixth step** in specification generation
- Activated after PRD, Architecture, UX, Implementation, and Testing specs are complete
- Final specification before implementation begins
- Critical for successful App Store launch
The release specification ensures the app reaches users and succeeds in the market.
---
## Notes
- App Store review can be unpredictable - plan for rejections
- TestFlight beta testing is crucial - don't skip it
- Privacy compliance is non-negotiable - get it right
- First impressions matter - polish screenshots and description
- Post-launch monitoring is as important as pre-launch prep
- Respond to reviews - it shows you care
- Plan for updates - v1.0 is just the beginning
- Marketing is not optional - no one will find your app without it