Consolidate the two overlapping Expo skills into one intent-driven
skills/mobile/clerk-expo verified against @clerk/expo 3.6.x:
- Rewrite custom flows for the current method-based API
(signIn.password/phoneCode/finalize) — the old references taught the
legacy prepareFirstFactor/setActive API and hooks that no longer exist
- Default "add auth" to prebuilt native components (AuthView/UserButton)
with beta + dev-build caveats; custom flows for Expo Go/web/custom UI
- Add SMS OTP, MFA, Native API dashboard prerequisite, theme JSON,
captcha mount point, and the Expo Go / dev build / web capability matrix
- Standardize on EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY (resolves the
direct-prop vs env-var contradiction between the two old skills)
- Add sustainability machinery: version freshness gate, canonical docs
URL per snippet section, build-and-fix verify loop, and 8 evals that
catch legacy-API regression
- Delete skills/frameworks/clerk-expo-patterns; register clerk-expo in
the router, clerk-setup, README, CLAUDE.md, and plugin manifests
- marketplace name "clerk-skills" -> "clerk"; future-proof if more
Clerk plugins land in the same marketplace (CLI, MCP, evals)
- plugin displayName "Clerk Skills" -> "Clerk" matches the OpenAI
plugin convention (single-word product name) and avoids "Skills"
redundancy now that plugins are first-class in /plugins
- plugin name (clerk-skills) and skill prefixes (clerk-skills:*)
unchanged so the install command and skill identifiers stay stable
- add assets/clerk-logo.svg (mark from clerk/cursor-plugin, padded for parity with other Codex plugin icons)
- wire composerIcon, logo, brandColor (#6C47FF), longDescription, websiteURL, defaultPrompt, author block
- expand capabilities to ["Read", "Write"] since skills guide both