app-store
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive…
Generates StoreKit 2 subscription lifecycle management — grace periods, billing retry, offer codes, win-back offers, upgrade/downgrade paths, and subscription status monitoring. Use when user needs post-purchase subscription state handling beyond the initial paywall.
Claude Code
$ npx -y skills add rshankras/claude-code-apple-skills --skill subscription-lifecycle --agent claude-code
Codex
$ npx skills add rshankras/claude-code-apple-skills --skill subscription-lifecycle -a codex -y
Cursor
$ npx skills add rshankras/claude-code-apple-skills --skill subscription-lifecycle -a cursor -y
Gemini CLI
$ npx skills add rshankras/claude-code-apple-skills --skill subscription-lifecycle -a gemini-cli -y
GitHub Copilot
$ npx skills add rshankras/claude-code-apple-skills --skill subscription-lifecycle -a github-copilot -y
OpenCode
$ npx skills add rshankras/claude-code-apple-skills --skill subscription-lifecycle -a opencode -y
Windsurf
$ npx skills add rshankras/claude-code-apple-skills --skill subscription-lifecycle -a windsurf -y
name: subscription-lifecycle description: Generates StoreKit 2 subscription lifecycle management — grace periods, billing retry, offer codes, win-back offers, upgrade/downgrade paths, and subscription status monitoring. Use when user needs post-purchase subscription state handling beyond the initial paywall. allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion] last_verified: 2026-07-16 review_by: 2027-06-22 os_version: iOS 27 / macOS 27
Generate production StoreKit 2 subscription lifecycle management with real-time status monitoring, grace period handling, billing retry detection, offer code redemption, win-back offers, and upgrade/downgrade path support.
**Different from paywall-generator:** The paywall generator handles the purchase UI and initial transaction. This skill handles everything that happens *after* purchase — monitoring subscription state changes, handling payment failures, retaining churning users, and managing tier transitions.
**Why retention math dominates acquisition (per Apple's Tech Talk):**
Use this skill when the user:
Search for existing subscription code:
Glob: **/*Store*.swift, **/*Subscription*.swift, **/*Entitlement*.swift Grep: "import StoreKit" or "Transaction.updates" or "Product.SubscriptionInfo"
If paywall-generator output found:
If no existing StoreKit code found:
Grep: "In-App Purchase" or "StoreKit" in *.entitlements
If missing, warn user to add the In-App Purchase capability in Xcode.
Ask user via AskUserQuestion:
1. **Subscription tiers?**
2. **Lifecycle features?** (multi-select)
3. **Include subscription dashboard UI?**
4. **Server-side verification?**
Read `patterns.md` for lifecycle state diagrams and StoreKit 2 behavior reference. Read `templates.md` for production Swift code templates.
Generate these files: 1. `SubscriptionState.swift` — Comprehensive enum for all lifecycle states 2. `SubscriptionMonitor.swift` — @Observable class monitoring real-time status via `Transaction.updates` and `Product.SubscriptionInfo` 3. `SubscriptionEntitlement.swift` — Maps product IDs to feature access levels
Based on configuration: 4. `GracePeriodHandler.swift` — If grace period selected 5. `OfferManager.swift` — If offer codes or win-back selected
If dashboard UI selected: 6. `SubscriptionDashboardView.swift` — SwiftUI view for plan management
Check project structure:
After generation, provide:
SubscriptionLifecycle/ ├── SubscriptionState.swift # All lifecycle states enum ├── SubscriptionMonitor.swift # Real-time status monitoring ├── SubscriptionEntitlement.swift # Product ID → feature mapping ├── GracePeriodHandler.swift # Grace period detection & UI (optional) ├── OfferManager.swift # Offers, codes, win-back (optional) └── SubscriptionDashboardView.swift # Plan management UI (optional)
**If paywall-generator was already used:**
// In your existing StoreKitManager, add lifecycle monitoring
@Observable
final class StoreKitManager {
// ... existing product loading and purchase code ...
let lifecycleMonitor = SubscriptionMonitor()
func startMonitoring() async {
await lifecycleMonitor.start(
groupID: "your.subscription.group",
entitlements: SubscriptionEntitlement.default
)
}
}**App En
A collection of Claude Code skills for iOS, macOS, watchOS, visionOS, and Apple platform development. These skills help you plan and build apps, maintain code quality, ensure HIG compliance, and guide you from idea to App Store.
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive…
Privacy-preserving ad measurement with AdAttributionKit (SKAdNetwork's successor) — install and re-engagement attribution,…
Generate compelling App Store descriptions that convert browsers into users. Use when writing initial descriptions, improving…
Apple Search Ads campaign strategy for indie developers — paid acquisition, keyword bidding, budget planning, and ROAS…
Take a one-time in-app purchase from MISSING_METADATA to READY_TO_SUBMIT in App Store Connect — set its price schedule and…
Optimize app title, subtitle, and keywords for maximum App Store discoverability. Use when launching a new app, improving search…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.