site-to-ios-app — Claude Code skill: audit and setup
This skill audits a website or PWA for an iOS release and drafts an implementation plan. Use it to weigh a web shell against a native build.
npx skills add JasonColapietro/suede-creator-skills --skill site-to-ios-app -a claude-codeWhat site-to-ios-app does
The skill checks an accessible site for routes and sign-in needs, iPhone-width behavior, payment flows, privacy, support links, and PWA signals. It writes SITE_TO_IOS_AUDIT.md and SITE_TO_IOS_PLAN.md, including a proposed approach, QA matrix, and release conditions.
The plan covers App Store Guideline 4.2 exposure, native features, the privacy manifest, age rating, and checks for login and payments. It also describes Capacitor and SwiftUI approaches. If the result would amount to a bookmark or unchanged website, the 4.2 gate calls for pausing and getting the user's decision; that affects the release plan.
What it helps with
- audit a site's routes before starting an iOS build
- choose between a Capacitor shell and native UI
- record Guideline 4.2 exposure and ways to address it
- plan QA for sign-in, payments, and offline behavior
Example prompts for the agent
- Audit this site for an iOS release and write the findings.
- Choose an approach for turning our PWA into an iOS app and draft the release plan.
- Check this project for Guideline 4.2 exposure and suggest native features to add.
How to install site-to-ios-app
1Skills CLI (Vercel)
npx skills add JasonColapietro/suede-creator-skills --skill site-to-ios-app -a claude-code2Manually: put the files in place
~/.claude/skills/site-to-ios-app/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/site-to-ios-app/
1Skills CLI (Vercel)
npx skills add JasonColapietro/suede-creator-skills --skill site-to-ios-app -a codex2Manually: put the files in place
.agents/skills/site-to-ios-app/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add JasonColapietro/suede-creator-skills --skill site-to-ios-app -a cursor2Manually: put the files in place
.cursor/skills/site-to-ios-app/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install JasonColapietro/suede-creator-skills site-to-ios-app2Manually: put the files in place
.github/skills/site-to-ios-app/SKILL.md1Skills CLI (Vercel)
npx skills add JasonColapietro/suede-creator-skills --skill site-to-ios-app -a gemini-cli2Platform CLI
gemini skills install https://github.com/JasonColapietro/suede-creator-skills --path skills/site-to-ios-appManually: put the files in place
.devin/skills/site-to-ios-app/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add JasonColapietro/suede-creator-skills --skill site-to-ios-app -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about site-to-ios-app
How do I install site-to-ios-app in Claude Code?
Run npx skills add JasonColapietro/suede-creator-skills --skill site-to-ios-app -a claude-code. The skill file is at ~/.claude/skills/site-to-ios-app/SKILL.md.
What does site-to-ios-app do?
It audits a website or PWA for an iOS release and produces an audit and implementation plan. These cover the app approach, native features, and App Store checks.
How does it assess App Store Guideline 4.2 risk?
It checks whether the proposed app could look like a bookmark or unchanged website. If so, it lays out possible paths and waits for the user's choice.
Source text
SKILL.md · MIT
--- name: site-to-ios-app description: "Suede AI workflow for turning a live website, PWA, dashboard, or marketplace into an iOS app. Use when the user has a site or web app and asks to put it on the App Store, wrap it in an app, ship an iOS version, or convert a PWA to native. Produces SITE_TO_IOS_AUDIT.md and SITE_TO_IOS_PLAN.md: URL audit, shell-vs-native strategy, App Store Guideline 4.2 wrapper risk and the native value that mitigates it, current SDK, privacy manifest, age rating, login and payment checks, kids-app rules, QA matrix, and a release gate. NOT FOR: Android builds or conversions (use android-app-factory); Google Play uploads and rollouts (use suede-play-release); App Store listing, keyword, and screenshot strategy (use suede-aso)." --- # Site to iOS App ## Gate policy Every check and verdict here is advice to the user, not a control on the agent. Run the checks, report results honestly, and complete what the user asked. A failed gate changes the report, never the work. The one exception: a finding that risks data loss, credential exposure, a legal or rights violation, a payment mistake, or irreversible public damage. Pause, name the risk, give the options, and let the user choose. ## Principle A site becomes an iOS app when the app adds native value, behaves like iOS, and the store listing describes what the build actually does. A web page in a frame is a Guideline 4.2 rejection waiting to happen. ## Start here 1. Read `references/site-to-ios-runbook.md` before scaffolding or touching an existing wrapper. 2. Read `references/app-store-requirements.md` and re-check each dated item against Apple's live pages. Record what you checked and when in the plan. 3. If a URL is reachable, write `SITE_TO_IOS_AUDIT.md` from live evidence: URL checked and date, route map with auth needs, iPhone-width behavior, PWA signals, legal/support/account-deletion links, payment and sensitive flows, auth and session behavior, performance risks, native value opportunities, and the 4.2 verdict. 4. Write `SITE_TO_IOS_PLAN.md`: chosen strategy and why, native value to ship before release, build commands, bundle ID and signing notes, QA matrix, store asset and privacy work, blockers, and the release gate. `references/worked-example.md` shows a full audit excerpt, plan excerpt, and the verdict message. Read it when you need the expected depth. ## Strategy Pick one route and write down why: - **Capacitor remote shell**: the live site stays the product; web deploys change app behavior. - **Capacitor bundled shell**: static or SPA assets ship in the binary; changes need a new App Store build unless backed by live APIs. - **Native SwiftUI shell with WebView**: native navigation, settings, auth, push, share, error, and account screens around a site view. - **Full native rebuild**: the site is mostly content, its mobile UX is weak, or wrapper risk is high. ## App Store 4.2 gate Halt when the app would be a bookmark, content mirror, or unmodified website. Name the exact 4.2 exposure from the audit, offer the options (add native value from the list below, rebuild natively, ship as a web app, or submit with the rejection risk on record), and wait for the user's pick. Native value that counts: - iOS-native onboarding, empty states, errors, offline, and retry. - Native settings with support, privacy, terms, account deletion, restore, and notification controls where they apply. - Universal links or deep links that work from a cold start. - Share sheet, widgets, push, camera/media/file pickers, Wallet, StoreKit, or other native capabilities, only where they serve the product. - Safe-area, keyboard, navigation, dark/light mode, and Dynamic Type handling. Push, a native settings screen, and working universal links together are the smallest bundle that reliably reads as an app rather than a bookmark. ## Kids and family apps If the app is for children (a StoryBeam-style reading or story app, a beginner lesson app) or lands in the Kids Category, the plan must hold to these before anything else: - Collect no personal data from children. No accounts for kids, no free-text fields that could capture names or locations, no photos, voice, or contact uploads, no precise location. - No third-party analytics or advertising SDKs in a Kids Category app, and a parental gate in front of external links, purchases, and settings. - Content stays age-appropriate for the declared age band, including AI-generated stories, images, and audio. Generated output needs a review or filtering step before a child sees it. - Answer the age rating questionnaire for the real content and features. Details and sources are in `references/app-store-requirements.md`. A rule conflict here is an extreme-risk finding: pause and put it to the user. ## Conversion flow 1. Audit the URL: responsive behavior, PWA assets, auth, payments, privacy, support, route depth, mobile performance. 2. Pick the strategy and write `SITE_TO_IOS_PLAN.md`. 3. Scaffold or adapt the project with the repo's package manager and iOS conventions. 4. Configure bundle ID, display name, icon, launch screen, associated domains, Info.plist usage strings, privacy manifest, and entitlements. 5. Build native value and failure states before visual polish. 6. For Capacitor shells, run the web build, then `cap sync ios`. 7. Test on a named simulator or device: first launch, auth, deep links, tabs, keyboard, payments, offline, backgrounding, account flows. 8. Produce screenshots, metadata, privacy answers, age rating answers, and review notes. Hand listing copy, keywords, and screenshot sequencing to `suede-aso` so the listing is built for search, not just for review. 9. Run the release gate. Submit only when the user explicitly delegates public release and confirms the app, bundle ID, version, build, and account. ## Completion bar Do not call the app release-ready until: - the project builds with the current required Xcode and SDK on a named target (`xcodebuild -scheme <App> -destination 'generic/platform=iOS Simulator' build` exits 0, or a named device or CI run); - every native plugin, permission string, and entitlement maps to real behavior; - the privacy manifest covers the app and every bundled SDK that needs one; - the web route or bundle strategy is written down; - the 4.2 risk has a mitigation; - screenshots and metadata match shipped features; - privacy answers match the real SDKs, cookies, analytics, and account flows; - no secrets, signing material, or private account identifiers are committed (`git status --short` clean; `git grep -nE 'PRIVATE KEY|AuthKey_'` empty). ## Routing - Android version of the same product → `android-app-factory`, then `suede-play-release` for delivery. - App Store listing, keywords, screenshots, and ratings strategy → `suede-aso`. - Constants that must match across iOS, Android, and web → `suede-parity-contract`. - A native iOS app with no website behind it, or repair of an existing Capacitor shell, is outside this pack (private Suede AI companions, not in this pack).
© JasonColapietro · MIT · JasonColapietro/suede-creator-skills