From web-dev-skills
Work at the Expo SDK 56+ inline native module boundary with current Expo docs, live project inspection, TypeScript interface generation, and explicit Apple Dev Skills handoffs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/web-dev-skills:expo-inline-native-modules-workflowThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide Expo app changes that cross from TypeScript or JavaScript into app-specific Swift or Kotlin native code.
Guide Expo app changes that cross from TypeScript or JavaScript into app-specific Swift or Kotlin native code.
This workflow keeps inline modules narrow and project-local. It helps decide whether an inline module is the right shape, inspect the app before touching native or generated files, configure discovery, generate TypeScript interfaces where supported, and pick validation that matches the app's Expo workflow.
expo-type-information or generated TypeScript interfaces for Swift Expo modules.requireNativeModule, requireNativeView, Expo Modules API native views, or moving a native Expo module from standalone package boilerplate into the app tree.Inline modules and expo-type-information are experimental and may change quickly. Refresh official Expo documentation before making claims or edits involving:
expo-type-information commands, generated file names, type inference modes, or setup requirementsUse repo-local Expo files, checked-out dependency sources, Dash MCP or Dash HTTP for installed Expo or React Native docsets, and then official Expo documentation when Dash/local coverage is missing, stale, or insufficient for the current experimental SDK behavior:
When Swift, Xcode, signing, simulator, or Apple framework facts matter, route through Apple Dev Skills and official Apple documentation instead of relying on Expo guidance alone.
Use the focused reference tables when choosing a native shape or validation path:
These references are local workflow aids, not permanent API references. Refresh official Expo docs before using SDK-version-sensitive details.
Before editing an Expo app, inspect the live project:
package.json, the lockfile, and package-manager conventions.app.json, app.config.js, app.config.ts, or equivalent Expo config.expo, react, and react-native versions.ios/ and android/ directories exist.eas.json when EAS or development builds are part of validation.tsconfig.json and TypeScript check scripts.Report the intended edit scope before changing native code, generated TypeScript, package dependencies, Expo config, or generated native projects.
Do not run npx expo prebuild --clean, native builds, EAS builds, or package installation until the likely side effects are identified and the user's request authorizes that level of change.
Treat these commands as high-side-effect operations. Do not run them until the intended side effects are clear and the user's request authorizes that level of change:
npx expo prebuild, because it updates generated native projects from Expo confignpx expo prebuild --clean, because it deletes and regenerates native project directoriesnpx expo run:ios and npx expo run:android, because they run local native build toolchainsUse Validation matrix before choosing one of these commands.
expo-module skill for standalone or local Expo module implementation.expo-dev-client skill for development build distribution and dev-client setup.upgrading-expo skill for Expo SDK upgrades and dependency-alignment work.Prefer an inline module when:
Prefer a local or standalone Expo module when:
Prefer a config plugin or existing package configuration when:
Prefer direct native project edits only when the project is intentionally bare or brownfield, repo-local guidance says native directories are source of truth, or the user explicitly asks for manual native project work.
If the choice creates a new native boundary, describe it plainly as a durable building-block change, a local implementation detail, or a conscious stopgap, and name what practical work it unlocks.
expo.experiments.inlineModules only when SDK and workflow gates pass.watchedDirectories to specific source directories such as app or src.requireNativeModule for modules and requireNativeView for native views.expo-type-information only in SDK 56 or later projects.inline-modules-interface for Swift inline modules.Module.generated.ts as regenerated output.Module.tsx as the stable editable wrapper surface.Choose validation from the project shape and changed surface:
npx expo-doctor after Expo dependency or config changesnpx expo prebuild when app config changes must synchronize native projectsnpx expo run:ios or npx expo run:android only when local native build validation is appropriate and authorizedRun Expo, Xcode, Gradle, SwiftPM, TypeScript, and package-manager validation serially. Do not run build or test tools concurrently.
Return:
Decision: inline module, standalone module, config plugin, existing package, or direct native edit.Changed surfaces: config, native files, TypeScript wrappers, generated files, dependencies, or native projects.Validation: exact commands run and what passed or was skipped.Native boundary risk: experimental Expo status, platform coverage gaps, generated-file caveats, and any Apple Dev Skills handoff.Creates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.
npx claudepluginhub gaelic-ghost/socket --plugin web-dev-skills