[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M77VTC2PZMBAMJWQEY2VGQD4":3,"skill-same:01M77VTC2PZMBAMJWQEY2VGQD4":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M77VTC2PZMBAMJWQEY2VGQD4","expo-examples",null,"Expo's official example projects - the expo\u002Fexamples repo of ~70 `with-*` integrations (Stripe, Clerk, Supabase, OpenAI, maps, Reanimated, SQLite, Skia, NativeWind, and more). Use when integrating a third-party library or service into an existing Expo app and you want the canonical, version-matched pattern to adapt, or when scaffolding a new project from one with `npx create-expo --example`.","tallermchector\u002F02enviosdosruedas","tallermchector","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F196752173?v=4","01M77VMBE7KP4GMF5KJ15E96D5","01M77VMBEYKNBGBXVQBFB2SX4A",0,"MIT","https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-examples\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: expo-examples\ndescription: Expo's official example projects - the expo\u002Fexamples repo of ~70 `with-*` integrations (Stripe, Clerk, Supabase, OpenAI, maps, Reanimated, SQLite, Skia, NativeWind, and more). Use when integrating a third-party library or service into an existing Expo app and you want the canonical, version-matched pattern to adapt, or when scaffolding a new project from one with `npx create-expo --example`.\nallowed-tools: \"Read,Bash(gh api:*),Bash(git clone:*),Bash(npx create-expo:*),Bash(npx degit:*),Bash(bun create:*)\"\nlicense: MIT\n---\n\n# Expo Examples\n\n[expo\u002Fexamples](https:\u002F\u002Fgithub.com\u002Fexpo\u002Fexamples) is Expo's official library of ~70 **integration examples** — directories named `with-\u003Clibrary>` (e.g. `with-stripe`, `with-maps`), each built around **one** library or service. These are not full apps: they're **managed** projects (no `ios\u002F`\u002F`android\u002F` dirs — native setup is via config plugins), and the typical one is a **single screen of ~100–200 lines**. Mine them for the canonical integration *pattern* — the dependency set, `app.json` config plugins, and minimal wiring Expo maintains against the current SDK — and adapt that into the user's app. Don't expect to lift an application architecture from them.\n\nReach for an example before hand-rolling an integration. (Kinds — full-stack, showcases, starters — are noted in `.\u002Freferences\u002Fcatalog.md`.)\n\n## Two modes\n\n1. **Inspiration \u002F adapt** (most common) — the user already has a project. Find the matching example, read its key files, and apply the *pattern* to their code.\n2. **Scaffold** — greenfield. Start a fresh project directly from the example.\n\n## Workflow\n\n### 1. Find the right example\n\nMap the user's need to an example name (e.g. payments → `with-stripe`, auth → `with-clerk`). `.\u002Freferences\u002Fcatalog.md` is a categorized snapshot for fast triage — but it drifts, so confirm against the live list:\n\n```bash\n# Live example names:\ngh api repos\u002Fexpo\u002Fexamples\u002Fcontents --jq '.[] | select(.type==\"dir\" and (.name|startswith(\".\")|not)) | .name'\n# Aliases (renamed) + deprecated (dead\u002Fmoved) examples — check before recommending:\ngh api repos\u002Fexpo\u002Fexamples\u002Fcontents\u002Fmeta.json --jq '.content' | base64 -d\n```\n\n`meta.json` is the source of truth for what's renamed or dead (deprecated examples are removed from the repo tree but still listed here, each with a `message`). If an example is in its `deprecated` map, don't recommend it — follow the `message` to the modern path. If it's in `aliases`, use the `destination`.\n\n### 2a. Inspiration mode — study without touching the user's project\n\nThe common case: the user already has an app and wants to see how Expo does something. Read the example as **reference** and apply the patterns by hand — never scaffold an example on top of their project.\n\n**First, list the whole example in one call.** Integration code is often nested (e.g. Stripe's server routes live in `app\u002Fapi\u002F`), so a one-level listing misses the important files:\n\n```bash\ngh api 'repos\u002Fexpo\u002Fexamples\u002Fgit\u002Ftrees\u002Fmaster?recursive=1' \\\n  --jq '.tree[].path | select(startswith(\"with-stripe\u002F\"))'\n```\n\n**Then read the high-signal files first:** `README.md` (setup) → `package.json` (deps) → `app.json` (config plugins \u002F permissions) → the integration code the manifest revealed → `.env` (required secrets). Per file:\n\n```bash\ngh api repos\u002Fexpo\u002Fexamples\u002Fcontents\u002Fwith-stripe\u002Futils\u002Fstripe-server.ts --jq '.content' | base64 -d\n# No gh? Raw URL (branch is master):\ncurl -s https:\u002F\u002Fraw.githubusercontent.com\u002Fexpo\u002Fexamples\u002Fmaster\u002Fwith-stripe\u002Futils\u002Fstripe-server.ts\n```\n\n**Reading more than a couple of files?** Many integrations are spread across server routes, a client provider, and config (Stripe is). Skip the per-file calls — pull the whole example into a **throwaway\u002Fgitignored dir (not the user's project)** and read it freely with Grep\u002FRead, then apply by hand:\n\n```bash\nnpx degit expo\u002Fexamples\u002Fwith-stripe \u002Ftmp\u002Fexpo-ref\u002Fwith-stripe   # clean copy, no git history\n# fallback without degit (sparse-checkout, no full ~64 MB clone):\ngit clone --depth 1 --filter=blob:none --sparse https:\u002F\u002Fgithub.com\u002Fexpo\u002Fexamples.git \u002Ftmp\u002Fexpo-ref\u002Fexamples \\\n  && (cd \u002Ftmp\u002Fexpo-ref\u002Fexamples && git sparse-checkout set with-stripe)\n```\n\nRead from there with Grep\u002FRead; delete the scratch dir when done.\n\n### 2b. Scaffold mode — new project from an example\n\n```bash\nnpx create-expo --example with-stripe   # short form:  npx create-expo -e with-stripe\nbun create expo --example with-stripe    # with bun\n```\n\n### 3. Adapt into the user's app — non-destructively (critical)\n\nWhen the user already has an app, **add only what the example introduces; never overwrite their setup.**\n\n- **Version-align — don't copy pinned versions.** Examples track the **latest** SDK, so their `package.json` pins won't match an older project. Add only the *missing* deps with `npx expo install \u003Cpkg>` (it resolves SDK-correct versions) instead of copying exact versions.\n- **Merge config, don't replace it.** Add only the `app.json`\u002F`app.config.*` plugins and permissions the example introduces that the user lacks — keep their existing config block intact.\n- **Port the integration code.**\n- **Recreate env vars** from the example's `.env` shape — it holds placeholders, never working secrets.\n\n**Done when** the integration code is ported and every dependency, config plugin, permission, and env var it needs is accounted for in the user's app — not when it merely *looks* wired up.\n\n## Gotchas\n\n- **Default branch is `master`,** not `main` (matters for raw URLs and sparse checkout).\n- **Single-click deploy.** Every example has a launch URL: `https:\u002F\u002Flaunch.expo.dev\u002F?github=https:\u002F\u002Fgithub.com\u002Fexpo\u002Fexamples\u002Ftree\u002Fmaster\u002F\u003Cexample>`.\n\n## Related skills\n\n- Native UI components (@expo\u002Fui package) → `expo-ui`\n- Styling and native-feeling screens → `expo-native-ui`\n- Navigation and routing → `expo-router`\n- Authoring a native module → `expo-module`\n- Upgrade the SDK before adopting a latest-SDK example → `expo-upgrade`\n\n## References\n\n- `.\u002Freferences\u002Fcatalog.md` — categorized snapshot of the example library for fast triage.\n\n## Submitting Feedback\nIf you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:\n```bash\nnpx --yes @expo\u002Fagent-cli@latest feedback --category skills --subject \"expo-examples\" \"\u003Cactionable feedback>\"\n```\nOnly submit when you have something specific and actionable to report. Include as much relevant context as possible.\nIf an agent repeatedly fails at an Expo task or the user has to step in, submit a brief report of the task, expected result, and what went wrong using `--category evals` and the relevant Expo package or command as `--subject`.\n","# Expo Examples\n\n[expo\u002Fexamples](https:\u002F\u002Fgithub.com\u002Fexpo\u002Fexamples) is Expo's official library of ~70 **integration examples** — directories named `with-\u003Clibrary>` (e.g. `with-stripe`, `with-maps`), each built around **one** library or service. These are not full apps: they're **managed** projects (no `ios\u002F`\u002F`android\u002F` dirs — native setup is via config plugins), and the typical one is a **single screen of ~100–200 lines**. Mine them for the canonical integration *pattern* — the dependency set, `app.json` config plugins, and minimal wiring Expo maintains against the current SDK — and adapt that into the user's app. Don't expect to lift an application architecture from them.\n\nReach for an example before hand-rolling an integration. (Kinds — full-stack, showcases, starters — are noted in `.\u002Freferences\u002Fcatalog.md`.)\n\n## Two modes\n\n1. **Inspiration \u002F adapt** (most common) — the user already has a project. Find the matching example, read its key files, and apply the *pattern* to their code.\n2. **Scaffold** — greenfield. Start a fresh project directly from the example.\n\n## Workflow\n\n### 1. Find the right example\n\nMap the user's need to an example name (e.g. payments → `with-stripe`, auth → `with-clerk`). `.\u002Freferences\u002Fcatalog.md` is a categorized snapshot for fast triage — but it drifts, so confirm against the live list:\n\n```bash\n# Live example names:\ngh api repos\u002Fexpo\u002Fexamples\u002Fcontents --jq '.[] | select(.type==\"dir\" and (.name|startswith(\".\")|not)) | .name'\n# Aliases (renamed) + deprecated (dead\u002Fmoved) examples — check before recommending:\ngh api repos\u002Fexpo\u002Fexamples\u002Fcontents\u002Fmeta.json --jq '.content' | base64 -d\n```\n\n`meta.json` is the source of truth for what's renamed or dead (deprecated examples are removed from the repo tree but still listed here, each with a `message`). If an example is in its `deprecated` map, don't recommend it — follow the `message` to the modern path. If it's in `aliases`, use the `destination`.\n\n### 2a. Inspiration mode — study without touching the user's project\n\nThe common case: the user already has an app and wants to see how Expo does something. Read the example as **reference** and apply the patterns by hand — never scaffold an example on top of their project.\n\n**First, list the whole example in one call.** Integration code is often nested (e.g. Stripe's server routes live in `app\u002Fapi\u002F`), so a one-level listing misses the important files:\n\n```bash\ngh api 'repos\u002Fexpo\u002Fexamples\u002Fgit\u002Ftrees\u002Fmaster?recursive=1' \\\n  --jq '.tree[].path | select(startswith(\"with-stripe\u002F\"))'\n```\n\n**Then read the high-signal files first:** `README.md` (setup) → `package.json` (deps) → `app.json` (config plugins \u002F permissions) → the integration code the manifest revealed → `.env` (required secrets). Per file:\n\n```bash\ngh api repos\u002Fexpo\u002Fexamples\u002Fcontents\u002Fwith-stripe\u002Futils\u002Fstripe-server.ts --jq '.content' | base64 -d\n# No gh? Raw URL (branch is master):\ncurl -s https:\u002F\u002Fraw.githubusercontent.com\u002Fexpo\u002Fexamples\u002Fmaster\u002Fwith-stripe\u002Futils\u002Fstripe-server.ts\n```\n\n**Reading more than a couple of files?** Many integrations are spread across server routes, a client provider, and config (Stripe is). Skip the per-file calls — pull the whole example into a **throwaway\u002Fgitignored dir (not the user's project)** and read it freely with Grep\u002FRead, then apply by hand:\n\n```bash\nnpx degit expo\u002Fexamples\u002Fwith-stripe \u002Ftmp\u002Fexpo-ref\u002Fwith-stripe   # clean copy, no git history\n# fallback without degit (sparse-checkout, no full ~64 MB clone):\ngit clone --depth 1 --filter=blob:none --sparse https:\u002F\u002Fgithub.com\u002Fexpo\u002Fexamples.git \u002Ftmp\u002Fexpo-ref\u002Fexamples \\\n  && (cd \u002Ftmp\u002Fexpo-ref\u002Fexamples && git sparse-checkout set with-stripe)\n```\n\nRead from there with Grep\u002FRead; delete the scratch dir when done.\n\n### 2b. Scaffold mode — new project from an example\n\n```bash\nnpx create-expo --example with-stripe   # short form:  npx create-expo -e with-stripe\nbun create expo --example with-stripe    # with bun\n```\n\n### 3. Adapt into the user's app — non-destructively (critical)\n\nWhen the user already has an app, **add only what the example introduces; never overwrite their setup.**\n\n- **Version-align — don't copy pinned versions.** Examples track the **latest** SDK, so their `package.json` pins won't match an older project. Add only the *missing* deps with `npx expo install \u003Cpkg>` (it resolves SDK-correct versions) instead of copying exact versions.\n- **Merge config, don't replace it.** Add only the `app.json`\u002F`app.config.*` plugins and permissions the example introduces that the user lacks — keep their existing config block intact.\n- **Port the integration code.**\n- **Recreate env vars** from the example's `.env` shape — it holds placeholders, never working secrets.\n\n**Done when** the integration code is ported and every dependency, config plugin, permission, and env var it needs is accounted for in the user's app — not when it merely *looks* wired up.\n\n## Gotchas\n\n- **Default branch is `master`,** not `main` (matters for raw URLs and sparse checkout).\n- **Single-click deploy.** Every example has a launch URL: `https:\u002F\u002Flaunch.expo.dev\u002F?github=https:\u002F\u002Fgithub.com\u002Fexpo\u002Fexamples\u002Ftree\u002Fmaster\u002F\u003Cexample>`.\n\n## Related skills\n\n- Native UI components (@expo\u002Fui package) → `expo-ui`\n- Styling and native-feeling screens → `expo-native-ui`\n- Navigation and routing → `expo-router`\n- Authoring a native module → `expo-module`\n- Upgrade the SDK before adopting a latest-SDK example → `expo-upgrade`\n\n## References\n\n- `.\u002Freferences\u002Fcatalog.md` — categorized snapshot of the example library for fast triage.\n\n## Submitting Feedback\nIf you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:\n```bash\nnpx --yes @expo\u002Fagent-cli@latest feedback --category skills --subject \"expo-examples\" \"\u003Cactionable feedback>\"\n```\nOnly submit when you have something specific and actionable to report. Include as much relevant context as possible.\nIf an agent repeatedly fails at an Expo task or the user has to step in, submit a brief report of the task, expected result, and what went wrong using `--category evals` and the relevant Expo package or command as `--subject`.\n",{"name":5,"license":14,"description":7,"allowed-tools":23},"Read,Bash(gh api:*),Bash(git clone:*),Bash(npx create-expo:*),Bash(npx degit:*),Bash(bun create:*)","localmente","f3b25a2c5cd65a8d0bec3b60db7f86046dabea73",".qwen\u002Fskills\u002Fexpo-examples",2,"https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas","https:\u002F\u002F02enviosdosruedas.vercel.app","https:\u002F\u002Fgithub.com\u002Ftallermchector","2026-11-02 07:33:20",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add tallermchector\u002F02enviosdosruedas --skill expo-examples",{"tool":38,"command":39},"bunx","bunx skills add tallermchector\u002F02enviosdosruedas --skill expo-examples",{"tool":41,"command":42},"pnpm","pnpm dlx skills add tallermchector\u002F02enviosdosruedas --skill expo-examples","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-examples\u002FSKILL.md",true,[46,52],{"path":47,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":50,"sourceHtmlUrl":51},"agents\u002Fopenai.yaml","REFERENCE","参考文档",399,"https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-examples\u002Fagents\u002Fopenai.yaml",{"path":53,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":54,"sourceHtmlUrl":55},"references\u002Fcatalog.md",4353,"https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-examples\u002Freferences\u002Fcatalog.md",[57,64,71,78,85,92],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":18},"01M77VVT9RDRSGP78TQBW156AD","expo-web-to-native","Migrate an existing web React app to a native iOS\u002FAndroid app with Expo. Use when the user wants to turn a website into a mobile app, port a Next.js\u002FVite\u002FCRA React codebase to React Native, reuse web code on native incrementally, or asks how web idioms (the DOM, CSS, React Router, localStorage, window) map to native. This is the end-to-end migration guide; use the `expo-dom` skill for the DOM-component mechanism itself.","https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-web-to-native\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":18},"01M77VVR68YB3RFKA4T4W1FSZR","expo-upgrade","Guidelines for upgrading Expo SDK versions and fixing dependency issues","https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-upgrade\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":18},"01M77VVH8HWSZHBQBZNZ539Y0C","expo-ui","Build native UI with the @expo\u002Fui package: real SwiftUI on iOS and Jetpack Compose on Android. Default to @expo\u002Fui for sheets (BottomSheet), pickers, sliders, toggles, menus, and grouped-form sections — do NOT reach for Reanimated, @gorhom\u002Fbottom-sheet, or RN built-in Picker\u002FSwitch; use @expo\u002Fui instead. Fall back to RN built-ins only when @expo\u002Fui is missing the component. NOTE: @expo\u002Fui List renders native grouped rows like an iOS Settings screen — it is NOT a virtualized list; use FlatList\u002FFlashList for large datasets. Covers universal components (Host, Column, Row, Button, Text, List, BottomSheet, FieldGroup, Switch, Slider, Picker, Menu), drop-in replacements for RN community libraries, and platform-specific SwiftUI\u002FJetpack Compose trees. Not for Expo Router navigation, Reanimated, or data fetching.","https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-ui\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":18},"01M77VVAMSVHDGRRDWEQX2Q9NR","expo-skill-eval","Evaluate Expo skills in this repo end-to-end - trigger accuracy, generated code quality, and runtime screenshots on iOS simulator and Android emulator via Expo Go (web optional). Use when the user wants to eval an Expo skill, test that a skill produces working code, benchmark a skill with device screenshots, or verify a skill's output renders correctly.","https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-skill-eval\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":18},"01M77VV77S442TTSWHHFVRY9V7","expo-router","Navigation and routing for Expo Router. Covers file-based routes, groups and dynamic routes, folder organization, Link with previews and context menus, native Stack, page titles, modals and form sheets, NativeTabs, headers and toolbars, and header search bars.","https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-router\u002FSKILL.md",[],[],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":18},"01M77VV428CXNCHFWVPET3TZ4T","expo-project-structure","Folder structure for a new Expo app. Use when scaffolding or laying out a new Expo project with Expo Router, or deciding where a file should live in one. For new projects only — never restructure an existing app to match.","https:\u002F\u002Fgithub.com\u002Ftallermchector\u002F02enviosdosruedas\u002Fblob\u002Flocalmente\u002F.qwen\u002Fskills\u002Fexpo-project-structure\u002FSKILL.md",[],[]]