[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-clerk-clerk-expo-patterns-sw":3,"guides-for-clerk-clerk-expo-patterns":270,"similar-k172gby83ypeqfbqh811nq5prx8678ej":271},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":22,"identity":187,"isFallback":191,"parentExtension":192,"providers":249,"relations":252,"repo":253,"workflow":269},1778053930836.12,"k172gby83ypeqfbqh811nq5prx8678ej",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":12,"sourceUrl":13,"tags":14},"Expo / React Native patterns with Clerk — SecureStore token cache, OAuth deep linking, useAuth in native, Expo Router protected routes, push notifications with user context. Triggers on: expo clerk, clerk react native, SecureStore token cache, expo router auth, OAuth deep link clerk, mobile auth clerk.",{},"Clerk Expo Patterns","https://github.com/clerk/skills/tree/HEAD/skills/frameworks/clerk-expo-patterns",[15,16,17,18,19,20,21],"expo","react-native","clerk","authentication","oauth","expo-router","securestore",{"_creationTime":23,"_id":24,"extensionId":5,"locale":25,"result":26,"trustSignals":175,"workflow":185},1778054020038.6895,"kn79kkpp1x133bzsa4dwcghh7x867tej","en",{"checks":27,"evaluatedAt":165,"extensionSummary":166,"promptVersionExtension":167,"promptVersionScoring":168,"rationale":169,"score":170,"summary":171,"tags":172,"targetMarket":173,"tier":174},[28,33,36,39,43,46,50,54,57,60,64,69,72,76,79,82,85,88,91,94,98,102,106,110,114,117,120,123,127,130,133,136,139,142,146,149,152,155,158,162],{"category":29,"check":30,"severity":31,"summary":32},"Practical Utility","Problem relevance","pass","The description clearly states the problem of integrating Clerk authentication into Expo/React Native applications, covering specific use cases like token caching, OAuth, and protected routes.",{"category":29,"check":34,"severity":31,"summary":35},"Unique selling proposition","The extension provides specific patterns and code examples for Clerk integration in Expo, going beyond basic setup by detailing token caching, OAuth deep linking, and protected routes, which offers significant value over a generic Clerk integration.",{"category":29,"check":37,"severity":31,"summary":38},"Production readiness","The extension covers the full lifecycle of authentication for Expo apps, including setup, token persistence, authentication hooks, OAuth flows, and push notifications with user context, making it production-ready.",{"category":40,"check":41,"severity":31,"summary":42},"Scope","Single responsibility principle","The extension focuses solely on Expo/React Native patterns with Clerk, covering authentication and related user context features without extending into unrelated domains like deployment or general app development.",{"category":40,"check":44,"severity":31,"summary":45},"Description quality","The displayed description is concise, accurate, and accurately reflects the capabilities demonstrated in the provided code and references.",{"category":47,"check":48,"severity":31,"summary":49},"Invocation","Scoped tools","The extension utilizes specific tools and hooks related to Clerk authentication (e.g., useAuth, useSSO, ClerkProvider) rather than a single generalist tool, ensuring precise invocation.",{"category":51,"check":52,"severity":31,"summary":53},"Documentation","Configuration & parameter reference","Key configurations like `publishableKey` and `redirectUrl` are documented, and the use of `expo-secure-store` is clearly explained with installation instructions.",{"category":40,"check":55,"severity":31,"summary":56},"Tool naming","Tool names and import statements (e.g., `ClerkProvider`, `useAuth`, `useSSO`) are descriptive and align with the authentication domain.",{"category":40,"check":58,"severity":31,"summary":59},"Minimal I/O surface","Inputs like `publishableKey` and `redirectUrl` are specific, and outputs are focused on authentication states and user data, without extraneous information.",{"category":61,"check":62,"severity":31,"summary":63},"License","License usability","The extension is licensed under the MIT license, which is a permissive open-source license.",{"category":65,"check":66,"severity":67,"summary":68},"Maintenance","Commit recency","not_applicable","The commit date is not available for evaluation.",{"category":65,"check":70,"severity":31,"summary":71},"Dependency Management","The project lists specific versions for Expo and related dependencies, indicating a managed dependency approach.",{"category":73,"check":74,"severity":31,"summary":75},"Security","Secret Management","The extension correctly uses environment variables for Clerk publishable keys and warns against hardcoding them, adhering to good secret management practices.",{"category":73,"check":77,"severity":31,"summary":78},"Injection","The extension focuses on Clerk SDK usage and does not appear to load or execute untrusted third-party data.",{"category":73,"check":80,"severity":31,"summary":81},"Transitive Supply-Chain Grenades","All dependencies are explicitly listed in `package.json` and `app.json`, and there are no runtime downloads or execution of external code.",{"category":73,"check":83,"severity":31,"summary":84},"Sandbox Isolation","The extension operates within the standard Expo/React Native environment and does not attempt to access or modify files outside its designated scope.",{"category":73,"check":86,"severity":31,"summary":87},"Sandbox escape primitives","No detached process spawns or retry loops around denied tool calls were detected in the provided code.",{"category":73,"check":89,"severity":31,"summary":90},"Data Exfiltration","The extension handles authentication secrets via environment variables and does not perform any undocumented outbound calls or exfiltrate user data.",{"category":73,"check":92,"severity":31,"summary":93},"Hidden Text Tricks","The bundled content is free of hidden-steering tricks, control characters, or invisible Unicode sequences.",{"category":95,"check":96,"severity":31,"summary":97},"Hooks","Opaque code execution","The code is in plain, readable JavaScript/TypeScript, with no obfuscation, base64 payloads, or runtime code fetching.",{"category":99,"check":100,"severity":31,"summary":101},"Portability","Structural Assumption","The skill makes standard assumptions about Expo project structure and Clerk setup, which are clearly documented, and does not rely on arbitrary user paths.",{"category":103,"check":104,"severity":67,"summary":105},"Trust","Issues Attention","Issue data is not available for evaluation.",{"category":107,"check":108,"severity":31,"summary":109},"Versioning","Release Management","A version number (`1.0.0`) is present in the SKILL.md frontmatter.",{"category":111,"check":112,"severity":31,"summary":113},"Code Execution","Validation","Input parameters like `publishableKey` are validated via environment variable checks, and the `redirectUrl` follows a defined pattern.",{"category":73,"check":115,"severity":31,"summary":116},"Unguarded Destructive Operations","The extension is focused on authentication and does not involve destructive operations.",{"category":111,"check":118,"severity":31,"summary":119},"Error Handling","Error handling is demonstrated for token cache retrieval and OAuth flows, with clear messages or null returns where appropriate.",{"category":111,"check":121,"severity":31,"summary":122},"Logging","The extension includes basic logging for errors in token retrieval and OAuth flows, which is appropriate for its scope.",{"category":124,"check":125,"severity":31,"summary":126},"Compliance","GDPR","The extension handles authentication and user context, but does not explicitly process personal data beyond what is necessary for authentication and user identification via Clerk, with no submission to third parties beyond Clerk itself.",{"category":124,"check":128,"severity":31,"summary":129},"Target market","The extension is designed for Expo/React Native development, which is a global technology stack, and there are no regional-specific limitations mentioned or implied.",{"category":99,"check":131,"severity":31,"summary":132},"Runtime stability","The extension clearly states its dependencies on Expo CLI, `@clerk/expo`, and `expo-secure-store`, and the code is written to be compatible with standard Expo environments.",{"category":47,"check":134,"severity":31,"summary":135},"Precise Purpose","The description clearly outlines the purpose (Expo/React Native patterns with Clerk) and specific use cases (token cache, OAuth, protected routes) and provides clear triggers.",{"category":47,"check":137,"severity":31,"summary":138},"Concise Frontmatter","The frontmatter in SKILL.md is concise and effectively summarizes the core capability and triggers.",{"category":51,"check":140,"severity":31,"summary":141},"Concise Body","The main SKILL.md file is well-organized and delegates deeper technical details to separate reference files, keeping the main body concise.",{"category":143,"check":144,"severity":31,"summary":145},"Context","Progressive Disclosure","Detailed procedures and configurations are effectively delegated to separate markdown files in the `references/` directory, following a progressive disclosure pattern.",{"category":143,"check":147,"severity":67,"summary":148},"Forked exploration","This skill is not designed for deep exploration or code review; it provides patterns and setup instructions.",{"category":29,"check":150,"severity":31,"summary":151},"Usage examples","The SKILL.md and reference files provide numerous clear, end-to-end code examples for all major capabilities, including setup, authentication hooks, and OAuth flows.",{"category":29,"check":153,"severity":31,"summary":154},"Edge cases","The extension documents common pitfalls and critical considerations, such as `publishableKey` naming, token loss, OAuth redirect issues, and the importance of checking `isLoaded`.",{"category":111,"check":156,"severity":67,"summary":157},"Tool Fallback","The extension primarily uses Clerk's SDK and Expo APIs, not external MCP servers that would require fallbacks.",{"category":159,"check":160,"severity":31,"summary":161},"Safety","Halt on unexpected state","The code demonstrates checks for unexpected states, such as undefined `publishableKey` and the `isLoaded` status before checking `isSignedIn`, halting execution gracefully.",{"category":99,"check":163,"severity":31,"summary":164},"Cross-skill coupling","The skill is self-contained and focuses on Clerk integration within Expo, without implicit reliance on other skills.",1778053976387,"This skill provides patterns and code examples for integrating Clerk authentication into Expo/React Native projects. It covers essential functionalities such as token persistence using SecureStore, OAuth deep linking, securing routes with Expo Router, and managing user context for push notifications.","2.0.0","3.4.0","This extension is exceptionally well-documented and implemented, covering all aspects of Clerk integration for Expo/React Native. It adheres to best practices for security, portability, and usability, with clear examples and edge case handling. No critical or warning findings were identified.",98,"A comprehensive and well-documented skill for integrating Clerk authentication into Expo and React Native applications.",[15,16,17,18,19,20,21],"global","verified",{"codeQuality":176,"collectedAt":177,"documentation":178,"maintenance":180,"security":181,"testCoverage":184},{},1778053961257,{"descriptionLength":179,"readmeSize":8},303,{},{"hasNpmPackage":182,"license":183,"smitheryVerified":182},false,"MIT",{"hasCi":182,"hasTests":182},{"updatedAt":186},1778054020038,{"githubOwner":17,"githubRepo":188,"locale":25,"slug":189,"type":190},"skills","clerk-expo-patterns","skill",true,{"_creationTime":193,"_id":194,"community":195,"display":196,"identity":213,"parentExtension":215,"providers":243,"relations":247,"workflow":248},1778053930836.1162,"k1743f7ms46548z8nzj1s5afxd866ek0",{"reviewCount":8},{"description":197,"installMethods":198,"name":199,"sourceUrl":200,"tags":201},"Framework-specific Clerk integration patterns: middleware, hooks, SSR, composables, and advanced usage",{},"Clerk Skills","https://github.com/clerk/skills",[17,18,202,203,204,205,206,207,15,208,209,210,211,212],"frameworks","nextjs","react","vue","nuxt","astro","swift","android","webhooks","billing","organizations",{"githubOwner":17,"githubRepo":188,"locale":25,"slug":202,"type":214},"plugin",{"_creationTime":216,"_id":217,"community":218,"display":219,"identity":227,"providers":230,"relations":238,"workflow":240},1778053930836.1133,"k176xntnjb9e2mv2a7hqvgmy7h866yhy",{"reviewCount":8},{"description":220,"installMethods":221,"name":199,"sourceUrl":200,"tags":222},"Official Clerk skills for AI coding agents",{},[17,18,223,224,225,226],"auth","developer-tools","ai-agent","coding",{"githubOwner":17,"githubRepo":188,"locale":25,"slug":228,"type":229},"clerk-skills","marketplace",{"extract":231,"llm":236},{"commitSha":232,"license":183,"marketplace":233},"c1f6afc82a165988421166e68872cb41b892c0b0",{"name":228,"pluginCount":234,"version":235},4,"1.0.0",{"promptVersionExtension":167,"promptVersionScoring":168,"score":237,"targetMarket":173,"tier":174},85,{"repoId":239},"kd77f99t2sa8rvy3sj7yn73zp1864abx",{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186},1778053933098,1778053930836,{"extract":244,"llm":245},{"commitSha":232},{"promptVersionExtension":167,"promptVersionScoring":168,"score":246,"targetMarket":173,"tier":174},92,{"parentExtensionId":217,"repoId":239},{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186},{"extract":250,"llm":251},{"commitSha":232,"license":183},{"promptVersionExtension":167,"promptVersionScoring":168,"score":170,"targetMarket":173,"tier":174},{"parentExtensionId":194,"repoId":239},{"_creationTime":254,"_id":239,"identity":255,"providers":256,"workflow":266},1777995558409.8354,{"githubOwner":17,"githubRepo":188,"sourceUrl":200},{"discover":257,"github":260},{"sources":258},[259],"skills-sh",{"closedIssues90d":8,"forks":261,"openIssues90d":8,"pushedAt":262,"readmeSize":263,"stars":264,"topics":265},2,1778011344000,5449,40,[],{"discoverAt":267,"extractAt":268,"githubAt":268,"updatedAt":268},1777995558409,1778053934643,{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186},[],[272,294,314,332,354,373],{"_creationTime":273,"_id":274,"community":275,"display":276,"identity":286,"providers":288,"relations":291,"workflow":293},1778053930836.1216,"k179vaekcmae3hrhq6rhxzc03d86616j",{"reviewCount":8},{"description":277,"installMethods":278,"name":279,"sourceUrl":280,"tags":281},"Clerk Organizations for B2B SaaS - create multi-tenant apps with org switching, role-based access, verified domains, and enterprise SSO. Use for team workspaces, RBAC, org-based routing, member management.",{},"Clerk Organizations","https://github.com/clerk/skills/tree/HEAD/skills/features/clerk-orgs",[17,18,282,283,212,284,285,203],"b2b","saas","rbac","sso",{"githubOwner":17,"githubRepo":188,"locale":25,"slug":287,"type":190},"clerk-orgs",{"extract":289,"llm":290},{"commitSha":232,"license":183},{"promptVersionExtension":167,"promptVersionScoring":168,"score":170,"targetMarket":173,"tier":174},{"parentExtensionId":292,"repoId":239},"k172frdvq0x6yj945vg2ce7z9s867rrz",{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186},{"_creationTime":295,"_id":296,"community":297,"display":298,"identity":307,"providers":309,"relations":312,"workflow":313},1778053930836.1182,"k17ehatrq8deqzjfzbyarqxe09866g81",{"reviewCount":8},{"description":299,"installMethods":300,"name":301,"sourceUrl":302,"tags":303},"Vue 3 patterns with Clerk — composables (useAuth, useUser, useClerk, useOrganization), Vue Router guards, Pinia auth store integration. Triggers on: vue clerk, useAuth vue, clerk composables, vue router clerk guard, pinia auth clerk. For Nuxt, use clerk-nuxt-patterns instead.",{},"Vue Patterns","https://github.com/clerk/skills/tree/HEAD/skills/frameworks/clerk-vue-patterns",[205,17,18,304,305,306],"composables","pinia","vue-router",{"githubOwner":17,"githubRepo":188,"locale":25,"slug":308,"type":190},"clerk-vue-patterns",{"extract":310,"llm":311},{"commitSha":232,"license":183},{"promptVersionExtension":167,"promptVersionScoring":168,"score":170,"targetMarket":173,"tier":174},{"parentExtensionId":194,"repoId":239},{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186},{"_creationTime":315,"_id":316,"community":317,"display":318,"identity":325,"providers":327,"relations":330,"workflow":331},1778053930836.1191,"k170j22apn2kbgrpnbwbpf8d7d867qmx",{"reviewCount":8},{"description":319,"installMethods":320,"name":321,"sourceUrl":322,"tags":323},"Astro patterns with Clerk — middleware, SSR pages, island components, API routes, static vs SSR rendering. Triggers on: astro clerk, clerk astro middleware, astro protected page, clerk island component, astro API route auth, clerk astro SSR.",{},"Clerk Astro Patterns","https://github.com/clerk/skills/tree/HEAD/skills/frameworks/clerk-astro-patterns",[207,17,18,324,202],"webdev",{"githubOwner":17,"githubRepo":188,"locale":25,"slug":326,"type":190},"clerk-astro-patterns",{"extract":328,"llm":329},{"commitSha":232,"license":183},{"promptVersionExtension":167,"promptVersionScoring":168,"score":170,"targetMarket":173,"tier":174},{"parentExtensionId":194,"repoId":239},{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186},{"_creationTime":333,"_id":334,"community":335,"display":336,"identity":347,"providers":349,"relations":352,"workflow":353},1778053930836.1196,"k17ak27g3g09fy7wf40a461jmh866tny",{"reviewCount":8},{"description":337,"installMethods":338,"name":339,"sourceUrl":340,"tags":341},"TanStack React Start auth patterns with @clerk/tanstack-react-start - createServerFn, beforeLoad guards, loaders, Vinxi server. Triggers on: TanStack auth, createServerFn clerk, beforeLoad protection, TanStack Start middleware.",{},"TanStack React Start Patterns","https://github.com/clerk/skills/tree/HEAD/skills/frameworks/clerk-tanstack-patterns",[342,204,17,18,203,343,344,345,346],"tanstack","server","routes","guards","middleware",{"githubOwner":17,"githubRepo":188,"locale":25,"slug":348,"type":190},"clerk-tanstack-patterns",{"extract":350,"llm":351},{"commitSha":232,"license":183},{"promptVersionExtension":167,"promptVersionScoring":168,"score":170,"targetMarket":173,"tier":174},{"parentExtensionId":194,"repoId":239},{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186},{"_creationTime":355,"_id":356,"community":357,"display":358,"identity":366,"providers":368,"relations":371,"workflow":372},1778053930836.1187,"k17282mnt9phg4hntcyefpkcj1867hm4",{"reviewCount":8},{"description":359,"installMethods":360,"name":361,"sourceUrl":362,"tags":363},"Nuxt 3 auth patterns with @clerk/nuxt - middleware, composables, server API routes, SSR. Triggers on: Nuxt auth, useAuth composable, clerkMiddleware Nuxt, server API Clerk, Nuxt route protection.",{},"Clerk Nuxt Patterns","https://github.com/clerk/skills/tree/HEAD/skills/frameworks/clerk-nuxt-patterns",[206,18,17,364,346,304,365],"ssr","server-routes",{"githubOwner":17,"githubRepo":188,"locale":25,"slug":367,"type":190},"clerk-nuxt-patterns",{"extract":369,"llm":370},{"commitSha":232,"license":183},{"promptVersionExtension":167,"promptVersionScoring":168,"score":170,"targetMarket":173,"tier":174},{"parentExtensionId":194,"repoId":239},{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186},{"_creationTime":374,"_id":375,"community":376,"display":377,"identity":385,"providers":387,"relations":390,"workflow":391},1778053930836.1177,"k1706mzzj3z6wcvjthvn3haek1867nkj",{"reviewCount":8},{"description":378,"installMethods":379,"name":380,"sourceUrl":381,"tags":382},"React Router v7 patterns with Clerk — rootAuthLoader, getAuth in loaders, clerkMiddleware, protected routes, SSR user data, org switching. Triggers on: react-router auth, rootAuthLoader, getAuth loader, react-router protected route, loader authentication, SSR auth react-router.",{},"Clerk React Router Patterns","https://github.com/clerk/skills/tree/HEAD/skills/frameworks/clerk-react-router-patterns",[383,17,18,204,364,384],"react-router","patterns",{"githubOwner":17,"githubRepo":188,"locale":25,"slug":386,"type":190},"clerk-react-router-patterns",{"extract":388,"llm":389},{"commitSha":232,"license":183},{"promptVersionExtension":167,"promptVersionScoring":168,"score":170,"targetMarket":173,"tier":174},{"parentExtensionId":194,"repoId":239},{"anyEnrichmentAt":241,"extractAt":242,"githubAt":241,"llmAt":186,"updatedAt":186}]