site-to-ios-app
Suede Labs workflow for turning a website, PWA, dashboard, or marketplace into an iOS app. Use when the user has a live 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 — covers URL audit, shell-vs-native stra
Install
npx skills add https://github.com/JasonColapietro/suede-creator-skills/tree/main/skills/site-to-ios-app
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install jasoncolapietro-suede-creator-skills@llmmart
git clone https://github.com/JasonColapietro/suede-creator-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole jasoncolapietro/suede-creator-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Site to iOS App
Gate policy — advisory, not blocking
Every claim-verification step, check, quality gate, and ship verdict in this skill is a recommendation to the user, not a control on the agent. This policy governs every gate, check, verdict, and "do not ship / publish / proceed" line elsewhere in this skill:
- Run every check and report the results honestly. Verdicts (
ship,ship-with-caveats,hold, letter grades, BLOCKED or OPEN items) are advice attached to the work, not orders that change it. - Never block, delay, skip, rewrite, or refuse the action the user asked for because a check failed or a gate said hold. Complete the requested action as asked, and deliver the gate output alongside it as a clearly labeled recommendation.
- A failed gate changes what you report, never what you do.
- Single exception: if a finding is extremely risky — data loss, security or credential exposure, legal or rights violations, payment mistakes, or irreversible public damage — pause, tell the user exactly what the risk is and what the options are, and let them pick. Their choice is final.
Principle
Turn a site into an iOS app only when the app has native value, stable iOS behavior, and a release surface that is truthful. A raw web page in a frame is not enough for an App Store-quality product.
Start Here
Read references/site-to-ios-runbook.md before scaffolding or changing an
iOS wrapper.
If a URL is available, create SITE_TO_IOS_AUDIT.md directly. Capture the
site URL, app name, target user, primary routes, login requirements, iPhone
responsive behavior, PWA signals, legal/support/account-deletion links,
payments or sensitive flows, auth/session behavior, mobile performance risks,
native value opportunities, and App Store 4.2 wrapper risk.
Then create SITE_TO_IOS_PLAN.md directly. Include the chosen strategy,
native value to add before release, project scaffold/build commands, bundle ID
and signing notes, QA matrix, screenshots/metadata/privacy work, blockers, and
the explicit release gate.
Strategy Decision
Choose one route and write down why:
- Capacitor remote shell: live site remains the product surface and web deploys should update most content and behavior.
- Capacitor bundled shell: static/SPA assets are packaged into the binary and updates require App Store release unless paired with live APIs.
- Native SwiftUI shell with WebView: native navigation, settings, auth, push, share, error, and account surfaces wrap a site view.
- Full native rebuild: use when the site is mostly content, has weak mobile UX, or carries high wrapper rejection risk.
Deeper shell internals, native architecture, ASO, and App Store submission live in private Suede Labs companions, not in this pack: ios-capacitor-shell, ios-swiftui-product, ios-aso-launch, ios-app-store-release. None are required.
App Store 4.2 Gate
Halt when the app is only a bookmark, content mirror, or unmodified website: name the exact 4.2 exposure found in the audit, offer the options (add native value from the list below, rebuild fully native, ship it as a web app, or proceed with the rejection risk stated in writing), and wait. Native value:
- iOS-native onboarding, empty states, errors, offline, and retry.
- Native settings with support, privacy, terms, account deletion, restore, and notification controls where applicable.
- Universal links or deep links.
- Share sheet, widgets, push notifications, camera/media/file pickers, Apple Wallet, StoreKit, or other native capabilities only when they serve the app.
- Safe-area, keyboard, navigation, dark/light mode, and dynamic type handling.
Conversion Flow
- Audit the URL, responsive behavior, PWA assets, auth, payments, privacy, support, route depth, and mobile performance.
- Pick the conversion strategy and write a
SITE_TO_IOS_PLAN.md. - Scaffold or adapt the project using the repo's package manager and iOS project conventions.
- Configure bundle ID, display name, app icon, launch screen, associated domains, Info.plist usage strings, and entitlements.
- Implement native value and failure states before visual polish.
- Run web build and
cap sync iosfor Capacitor shells. - Test on simulator or device across first launch, auth, deep links, tabs, keyboard, payments, offline, backgrounding, and account flows.
- Produce App Store screenshots, metadata, privacy answers, and review notes.
- Run the ship gate. Do not submit unless the user explicitly delegates public release and confirms the exact app, bundle ID, version, build, and account.
Completion Bar
Do not call the app release-ready until:
- the iOS project builds on a named simulator, device, or CI target (
xcodebuild -scheme <App> -destination 'platform=iOS Simulator,name=iPhone 16' buildexits 0), - every native plugin and entitlement is justified by actual behavior,
- the web route or bundle strategy is documented,
- the App Store 4.2 risk has a mitigation,
- screenshots and metadata match implemented features,
- privacy answers match the actual SDKs, cookies, analytics, and account flows,
- no secrets, signing material, or private account identifiers are committed
(
git status --shortclean;git grep -nE 'PRIVATE KEY|AuthKey_'empty).
Files (suede-creator-skills)
-
agents
-
openai.yaml 265 B
interface: display_name: "Site to iOS App" short_description: "Turn websites into App Store-ready iOS app plans and shells" default_prompt: "$site-to-ios-app Audit this site and plan its conversion into an iOS app: " policy: allow_implicit_invocation: true
-
-
references
-
site-to-ios-runbook.md 3.9 KB
# Site-to-iOS Runbook ## 1. URL Audit Start with facts about the site: - URL, app name, target user, and core job. - Primary routes and whether they require login. - Responsive behavior on iPhone widths. - PWA signals: manifest, theme color, apple touch icon, service worker. - Legal links: privacy, terms, support, contact, account deletion if accounts exist. - Sensitive flows: payments, subscriptions, user-generated content, messaging, uploads, camera, microphone, location, health, finance, or minors. - Auth behavior: OAuth redirects, Sign in with Apple need, cookies, session persistence, same-site restrictions, universal links. When a URL is reachable, write `SITE_TO_IOS_AUDIT.md` directly from current evidence. Include the URL checked, route map, auth and payment behavior, PWA signals, legal/support/account-deletion links, responsive findings at iPhone widths, performance risks, sensitive permissions, native value opportunities, and App Store 4.2 wrapper-risk notes. ## 2. Strategy Matrix | Site Type | Default Strategy | Notes | | --- | --- | --- | | Existing SaaS or dashboard | Capacitor remote shell | Add native settings, deep links, offline/error states, and auth stability. | | Static marketing or content site | Full native rebuild or native content app | A thin wrapper is high risk under App Store 4.2. | | PWA with strong mobile UX | Capacitor bundled or remote shell | Keep update route explicit and preserve PWA assets. | | Marketplace or commerce site | Capacitor remote plus native account/support | Verify payments policy, Stripe web checkout, account deletion, and support. | | Media or creator app | Native shell or SwiftUI rebuild | Add media pickers, share, library, notifications, or offline where useful. | ## 3. Native Value Requirements The required native value is the blocking gate and lives in one place: see "App Store 4.2 Gate" in `SKILL.md`. Build against that list, not a copy. ## 4. Capacitor Scaffold Use the repo's locked package manager. For a new shell, the common shape is: ```bash pnpm create vite site-ios --template react-ts cd site-ios pnpm add @capacitor/core @capacitor/ios pnpm exec cap init pnpm build pnpm exec cap add ios pnpm exec cap sync ios ``` For a remote web app, configure the server URL only when the release policy accepts remote-delivered behavior. For a bundled app, build local assets and ship updates through binary releases unless using a governed live-update system. ## 5. Native Configuration Check these before release: - `capacitor.config.*` app ID, display name, webDir, and server routing. - Xcode bundle identifier, version, build number, signing team, and deployment target. - App icon, launch screen, status bar, orientation, and safe areas. - Associated domains and universal links. - Info.plist usage descriptions for every native permission. - Entitlements for Sign in with Apple, push, associated domains, iCloud, or Apple Pay only when implemented. ## 6. QA Matrix Run on a named simulator or device: - first launch and return launch, - login, logout, expired session, OAuth redirect, - primary route navigation, - keyboard forms and scroll-to-focused-field behavior, - network offline, slow network, API failure, retry, - file/media permission denial and later approval, - deep link from cold and warm start, - dark/light mode, - background/foreground, - payment or subscription flow if present, - account deletion/support/privacy/terms links. ## 7. Release Gate Produce: - `SITE_TO_IOS_AUDIT.md` - `SITE_TO_IOS_PLAN.md` with strategy, native value, build/run commands, QA matrix, screenshots/metadata/privacy work, blockers, and release gate - build command output or CI link - simulator/device QA notes - screenshots and metadata - privacy questionnaire inputs - reviewer notes Block release if the site cannot pass the wrapper-risk gate, if privacy/legal links are missing, if payments violate policy, if the app does not build, or if the user has not explicitly delegated public submission.
-
-
CARD.md 4.9 KB
# Skill Card — Site to iOS App <!-- Generated by scripts/build-skill-cards.mjs — do not hand-edit. --> <!-- Regenerate with: npm run build:cards --> Release record for the `site-to-ios-app` skill, following the NVIDIA skill-card template (<https://docs.nvidia.com/skills/skill-cards>). It tells a reviewer what the skill does, who owns it, what it needs, what could go wrong, and what evidence backs the release — without requiring them to open the source first. ## Description Suede Labs workflow for turning a website, PWA, dashboard, or marketplace into an iOS app. Status: production. Ships in the `suede-skills` plugin (the full pack) at release 0.19.0; loads as a Claude Code / Codex agent skill from this directory's [SKILL.md](./SKILL.md). ## Owner Jason Colapietro, Suede Labs AI (<https://github.com/JasonColapietro>). Security contact: `info@suedeai.ai` per [SECURITY.md](../../SECURITY.md). ## License / Terms of Use MIT ([LICENSE](../../LICENSE)). The pack's combined license expression is `MIT AND BSD-3-Clause`; this skill bundles no third-party licensed material of its own. ## Use Case Target users: developers and creators running the skill inside a Claude Code or Codex CLI session. Use when the user has a live 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 — covers URL audit, shell-vs-native strategy, App Store 4.2 wrapper risk, native value requirements, screenshots, metadata, privacy answers, and the release gate. Out of scope — building a native iOS app with no existing site (private Suede Labs companion, not in this pack: ios-swiftui-product); repairing or releasing an existing Capacitor shell (private Suede Labs companion, not in this pack: ios-capacitor-shell); Android conversions (use android-app-factory); live listing and keyword audits on a shipped app (use suede-aso). ## Deployment Geography Global. The skill is a prompt-and-script package that runs locally inside the invoking agent session; it pins no region-specific service of its own. ## Requirements / Dependencies - A Claude Code or Codex CLI session with the `suede-skills` plugin installed (install options: <https://skills.suedeai.ai/>). - Bundled files loaded relative to this directory: `agents/` (1 file), `references/` (1 file). - Credentials: none are bundled or required by the skill files. Any tool or API credentials come from the host session; never paste credentials into skill files, prompts, or outputs. ## Known Risks and Mitigations - Risk: an agent treats a quality gate as autonomous authority. Mitigation: every gate in the pack is advisory — it changes what is reported, never what the user decided; only extreme-risk findings (data loss, credential exposure, legal/rights violations, payment mistakes, irreversible public damage) pause for the user's explicit choice. - Risk: a skill instruction is used to act outside its mandate. Mitigation: the hard limits in the skill body's "App Store 4.2 Gate" section, quoted below. From "App Store 4.2 Gate" — Halt when the app is only a bookmark, content mirror, or unmodified website: name the exact 4.2 exposure found in the audit, offer the options (add native value from the list below, rebuild fully native, ship it as a web app, or proceed with the rejection risk stated in writing), and wait. Native value: - iOS-native onboarding, empty states, errors, offline, and retry. - Native settings with support, privacy, terms, account deletion, restore, and notification controls where applicable. - Universal links or deep links. - Share sheet, widgets, push notifications, camera/media/file pickers, Apple Wallet, StoreKit, or other native capabilities only when they serve the app. - Safe-area, keyboard, navigation, dark/light mode, and dynamic type handling. ## References - Skill source: [`skills/site-to-ios-app/SKILL.md`](./SKILL.md) - Rendered reference page: <https://skills.suedeai.ai/skills/site-to-ios-app.html> - Security policy and reviewed scanner exceptions: [SECURITY.md](../../SECURITY.md) and [`.plugin-scanner.toml`](../../.plugin-scanner.toml) at the repo root ## Skill Output Markdown analysis and recommendations returned in the agent's response. The skill publishes, posts, and sends nothing without the user's explicit authorization; delivery decisions stay with the user. ## Skill Version 0.19.0 — the pack is single-versioned, so every skill releases together; see [VERSION](../../VERSION) and [CITATION.cff](../../CITATION.cff) for the release identifier this card describes. ## Ethical Considerations - The skill produces recommendations for a human decision-maker. Publishing, sending, payment, and rights decisions stay with the user. - Its gates require verifiable claims and honest reporting; do not use the skill to fabricate claims, evidence, metrics, or attribution. - Report suspected misuse or a security concern privately per [SECURITY.md](../../SECURITY.md); do not open a public issue for it. -
SKILL.md 6 KB
--- name: site-to-ios-app description: "Suede Labs workflow for turning a website, PWA, dashboard, or marketplace into an iOS app. Use when the user has a live 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 — covers URL audit, shell-vs-native strategy, App Store 4.2 wrapper risk, native value requirements, screenshots, metadata, privacy answers, and the release gate. NOT FOR: building a native iOS app with no existing site (private Suede Labs companion, not in this pack: ios-swiftui-product); repairing or releasing an existing Capacitor shell (private Suede Labs companion, not in this pack: ios-capacitor-shell); Android conversions (use android-app-factory); live listing and keyword audits on a shipped app (use suede-aso)." --- # Site to iOS App ## Gate policy — advisory, not blocking Every claim-verification step, check, quality gate, and ship verdict in this skill is a **recommendation to the user, not a control on the agent**. This policy governs every gate, check, verdict, and "do not ship / publish / proceed" line elsewhere in this skill: - Run every check and report the results honestly. Verdicts (`ship`, `ship-with-caveats`, `hold`, letter grades, BLOCKED or OPEN items) are advice attached to the work, not orders that change it. - Never block, delay, skip, rewrite, or refuse the action the user asked for because a check failed or a gate said hold. Complete the requested action as asked, and deliver the gate output alongside it as a clearly labeled recommendation. - A failed gate changes what you report, never what you do. - Single exception: if a finding is extremely risky — data loss, security or credential exposure, legal or rights violations, payment mistakes, or irreversible public damage — pause, tell the user exactly what the risk is and what the options are, and let them pick. Their choice is final. ## Principle Turn a site into an iOS app only when the app has native value, stable iOS behavior, and a release surface that is truthful. A raw web page in a frame is not enough for an App Store-quality product. ## Start Here Read `references/site-to-ios-runbook.md` before scaffolding or changing an iOS wrapper. If a URL is available, create `SITE_TO_IOS_AUDIT.md` directly. Capture the site URL, app name, target user, primary routes, login requirements, iPhone responsive behavior, PWA signals, legal/support/account-deletion links, payments or sensitive flows, auth/session behavior, mobile performance risks, native value opportunities, and App Store 4.2 wrapper risk. Then create `SITE_TO_IOS_PLAN.md` directly. Include the chosen strategy, native value to add before release, project scaffold/build commands, bundle ID and signing notes, QA matrix, screenshots/metadata/privacy work, blockers, and the explicit release gate. ## Strategy Decision Choose one route and write down why: - Capacitor remote shell: live site remains the product surface and web deploys should update most content and behavior. - Capacitor bundled shell: static/SPA assets are packaged into the binary and updates require App Store release unless paired with live APIs. - Native SwiftUI shell with WebView: native navigation, settings, auth, push, share, error, and account surfaces wrap a site view. - Full native rebuild: use when the site is mostly content, has weak mobile UX, or carries high wrapper rejection risk. Deeper shell internals, native architecture, ASO, and App Store submission live in private Suede Labs companions, not in this pack: ios-capacitor-shell, ios-swiftui-product, ios-aso-launch, ios-app-store-release. None are required. ## App Store 4.2 Gate Halt when the app is only a bookmark, content mirror, or unmodified website: name the exact 4.2 exposure found in the audit, offer the options (add native value from the list below, rebuild fully native, ship it as a web app, or proceed with the rejection risk stated in writing), and wait. Native value: - iOS-native onboarding, empty states, errors, offline, and retry. - Native settings with support, privacy, terms, account deletion, restore, and notification controls where applicable. - Universal links or deep links. - Share sheet, widgets, push notifications, camera/media/file pickers, Apple Wallet, StoreKit, or other native capabilities only when they serve the app. - Safe-area, keyboard, navigation, dark/light mode, and dynamic type handling. ## Conversion Flow 1. Audit the URL, responsive behavior, PWA assets, auth, payments, privacy, support, route depth, and mobile performance. 2. Pick the conversion strategy and write a `SITE_TO_IOS_PLAN.md`. 3. Scaffold or adapt the project using the repo's package manager and iOS project conventions. 4. Configure bundle ID, display name, app icon, launch screen, associated domains, Info.plist usage strings, and entitlements. 5. Implement native value and failure states before visual polish. 6. Run web build and `cap sync ios` for Capacitor shells. 7. Test on simulator or device across first launch, auth, deep links, tabs, keyboard, payments, offline, backgrounding, and account flows. 8. Produce App Store screenshots, metadata, privacy answers, and review notes. 9. Run the ship gate. Do not submit unless the user explicitly delegates public release and confirms the exact app, bundle ID, version, build, and account. ## Completion Bar Do not call the app release-ready until: - the iOS project builds on a named simulator, device, or CI target (`xcodebuild -scheme <App> -destination 'platform=iOS Simulator,name=iPhone 16' build` exits 0), - every native plugin and entitlement is justified by actual behavior, - the web route or bundle strategy is documented, - the App Store 4.2 risk has a mitigation, - screenshots and metadata match implemented features, - privacy answers match the actual 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).
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.