Claude Skill

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

LLM Mart · 0 points · 18 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download JasonColapietro-suede-creator-skills-skills_site-to-ios-app-f192517.zip · 7 KB
Part of jasoncolapietro/suede-creator-skills — 70 skills

Install

skills CLI npx skills add https://github.com/JasonColapietro/suede-creator-skills/tree/main/skills/site-to-ios-app
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install jasoncolapietro-suede-creator-skills@llmmart
Git 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

  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).
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.

No comments yet.

Reviews (0)

No reviews yet.

Related