From apple-dev
Generate privacy policies, terms of service, and EULAs for Apple platform apps. Detects data collection patterns, third-party SDKs, and generates region-specific legal documents with Apple Privacy Nutrition Label mapping. Use when user needs legal documents or data collection disclosure 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: "legal-privacy-policy 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: "legal-privacy-policy skill loaded."
Generate ready-to-use privacy policies, terms of service, and EULAs tailored to your app's data practices, third-party services, and target markets.
Disclaimer: This skill generates template legal documents based on common indie app scenarios. Consult a qualified lawyer for apps handling sensitive data (health, financial, children's data), apps with complex data sharing arrangements, or apps operating in highly regulated industries. These templates are a strong starting point -- not a substitute for legal counsel.
Use this skill when the user:
Before generating documents, gather context from the project.
Glob: **/privacy*.md, **/privacy*.html, **/privacy*.txt
Glob: **/terms*.md, **/terms*.html, **/terms*.txt
Glob: **/eula*.md, **/eula*.html, **/eula*.txt
Glob: **/legal/**
If existing documents found, ask user whether to replace or update them.
Grep: "Firebase" or "GoogleAnalytics" or "Crashlytics"
Grep: "Mixpanel" or "Amplitude" or "PostHog"
Grep: "AdMob" or "AppLovin" or "UnityAds"
Grep: "FacebookSDK" or "GoogleSignIn" or "SignInWithApple"
Grep: "Sentry" or "Bugsnag" or "DataDog"
Grep: "RevenueCat" or "Adapty" or "Qonversion"
Grep: "TelemetryDeck" or "Plausible" or "CountlySDK"
Note detected SDKs to auto-populate data collection sections.
Grep: "UserDefaults" -- Local preferences storage
Grep: "CoreData" or "SwiftData" or "NSPersistentContainer" -- Local database
Grep: "CloudKit" or "CKContainer" -- Cloud sync
Grep: "URLSession" or "Alamofire" -- Network calls
Grep: "HealthKit" or "HKHealthStore" -- Health data
Grep: "CLLocationManager" or "CoreLocation" -- Location data
Grep: "AVCaptureSession" or "PHPhotoLibrary" -- Camera/photos
Grep: "Contacts" or "CNContactStore" -- Contacts access
Grep: "ATTrackingManager" -- App Tracking Transparency
Grep: "ASAuthorizationAppleIDProvider" -- Sign in with Apple
Grep: "NSCameraUsageDescription" or "NSPhotoLibraryUsageDescription"
Grep: "NSLocationWhenInUseUsageDescription" or "NSLocationAlwaysUsageDescription"
Grep: "NSHealthShareUsageDescription" or "NSHealthUpdateUsageDescription"
Grep: "NSContactsUsageDescription" or "NSMicrophoneUsageDescription"
Grep: "NSUserTrackingUsageDescription"
Ask the user via AskUserQuestion:
Read templates.md for the document templates.
Based on configuration answers, include or exclude sections:
| Answer | Sections Added |
|---|---|
| No user data | Minimal privacy policy (no collection, no sharing) |
| Anonymous analytics | Analytics disclosure, third-party services list |
| Account with email | Account data, authentication, data retention |
| Personal info | Full data collection, user rights, data portability |
| Health/financial | Sensitive data handling, enhanced security, additional consent |
| Children under 13 | COPPA section, parental consent, limited data collection |
Replace template placeholders with detected or user-provided values:
[APP_NAME] -- App display name[DEVELOPER_NAME] -- Developer or company name[CONTACT_EMAIL] -- Privacy contact email[EFFECTIVE_DATE] -- Document effective date[WEBSITE_URL] -- Developer website or privacy page URLInclude sections based on target markets:
GDPR (European Union users):
CCPA (California users):
DPDP (India users):
COPPA (children under 13):
Based on detected data practices, generate a mapping for App Store Connect:
Apple Privacy Nutrition Label Mapping
=====================================
Data Types to Declare:
- [ ] Contact Info: Email Address -- Used for: App Functionality, Account
- [ ] Identifiers: User ID -- Used for: App Functionality
- [ ] Usage Data: Product Interaction -- Used for: Analytics
- [ ] Diagnostics: Crash Data -- Used for: App Functionality
- [ ] Diagnostics: Performance Data -- Used for: Analytics
Data Linked to User: [List items linked to user identity]
Data Used to Track: [List items used for cross-app tracking, if any]
Tracking: [Yes/No -- triggers ATT requirement if Yes]
Generate documents in Markdown format. Place files based on user's hosting preference:
docs/privacy-policy.md, docs/terms-of-service.md, docs/eula.mdResources/Legal/privacy-policy.md, etc.docs/ with guidance for in-app integrationWhen submitting to the App Store, Apple asks about data practices. Map generated privacy policy to these questions:
| Apple Question | Where to Find Answer |
|---|---|
| Do you or your third-party partners collect data? | "Information We Collect" section |
| Data types collected | Privacy Nutrition Label mapping (Step 4) |
| Is data linked to user identity? | "How We Use Information" section |
| Is data used for tracking? | "Third-Party Services" section |
Declare these data types based on your app's practices:
| If Your App... | Declare These Types |
|---|---|
| Has user accounts | Contact Info, Identifiers |
| Uses analytics | Usage Data (Product Interaction) |
| Has crash reporting | Diagnostics (Crash Data, Performance Data) |
| Shows ads | Identifiers (Device ID), Usage Data |
| Uses location | Location (Precise or Coarse) |
| Accesses photos | Photos or Videos |
| Accesses health data | Health & Fitness |
| Uses Sign in with Apple | Contact Info (Email), Identifiers (User ID) |
ATT is required when your app:
ATT is NOT required for:
docs/ folder in your repo/docshttps://yourusername.github.io/yourapp/privacy-policy// Option 1: WKWebView for hosted HTML
import WebKit
struct LegalDocumentView: UIViewRepresentable {
let url: URL
func makeUIView(context: Context) -> WKWebView { WKWebView() }
func updateUIView(_ webView: WKWebView, context: Context) {
webView.load(URLRequest(url: url))
}
}
// Option 2: Bundled Markdown rendered as Text
struct PrivacyPolicyView: View {
var body: some View {
ScrollView {
Text(LocalizedStringKey(privacyPolicyMarkdown))
.padding()
.textSelection(.enabled)
}
.navigationTitle("Privacy Policy")
}
}
After generation, provide:
docs/
├── privacy-policy.md # Privacy policy with region-specific sections
├── terms-of-service.md # Terms of service (if requested)
└── eula.md # End-user license agreement (if requested)
Provide a checklist the user can follow in App Store Connect.
NSUserTrackingUsageDescription to Info.plistgenerators-consent-flow -- GDPR/CCPA consent UI generationgenerators-account-deletion -- Account deletion flow (App Store requirement)generators-permission-priming -- Pre-permission UI for ATTmonetization -- Subscription terms and pricing disclosures