expo expo
OFFICIALLABSCO SUMMARY
None of the three touch what most people come to this repository for — the SDK, the CLI, or Expo Router as an app-building tool. android-e2e-testing drives an Android emulator over ADB to check Expo Router behavior after a native change. deep-code-review reads the surrounding codebase before judging a pull request and posts its findings back to GitHub. expo-api-docs turns Expo's own TSDoc conventions — the @platform, @example, and @deprecated annotations, third-person prose, and export patterns its documentation generator expects — into a skill that fires when someone adds a public API to an expo-* package.
This is for people contributing code to expo/expo itself, not for developers using Expo to ship a React Native app — those developers get nothing from any of the three. Two need something beyond a bare install: deep-code-review needs a GitHub token to post its review, and android-e2e-testing needs a working Android SDK and emulator on the machine that runs it. Only expo-api-docs runs with nothing else installed.
READ THE FULL ANALYSIS
Expo's own readme says nothing about any of this. The project readme describes the SDK, the CLI, EAS, and how to contribute code; it does not mention skills, an agent, or Claude anywhere. These three exist as ordinary files in the repository, and we found them by reading the repository directly, not because Expo has announced or documented them as a feature.
Who this is not for. If you came here because you build apps with Expo, none of the three skills below will help you — they review pull requests, drive an Android emulator, and enforce a documentation style, all scoped to this one repository's own contribution process.
ALSO IN THIS PACKAGE
config plugins
Config plugins, prebuild and autolinking — non-idempotent native file edits, dangerous mods that bypass a typed base mod, unscoped or renamed merge tags, unguarded anchor regexes, unvalidated values written into native files, and expo-module.config.json or podspec/spm.config declarations left out of sync.
correctness android
Correctness of changed Kotlin and Java — logic and algorithm defects, SDK level gating across minSdk 24 to 36, integer overflow on file and media sizes, R8 and minification breakage, coroutine cancellation and leaks, query escaping, bitmap memory, and Expo Modules API contract mistakes on Android.
correctness ios
Correctness of changed Swift and Objective-C — logic and algorithm defects, Apple framework semantics, promises that never settle, work outliving a runtime reload, thread and main-actor correctness, resource teardown, availability gating, and Expo Modules API contract mistakes on iOS, tvOS and macOS.
correctness js
Logic and correctness bugs in changed TypeScript and JavaScript — empty or absent state made reachable, unreachable new code, error behavior flipping between crash and silent-wrong, async and lifecycle mistakes, and tests that do not prove their own name.
correctness
Correctness defects that only appear ACROSS files, languages, or platforms — iOS and Android drifting apart, a fix landing in one copy and not its sibling, the TypeScript contract disagreeing with the native code that implements it, and a changed default that silently alters callers the diff never touches.
docs
Accuracy of documentation and JSDoc — platform claims that do not match the implementation, code samples that would not run, API names and options that no longer exist, and version or locale copies left inconsistent.
public api
Breaking changes to the published surface of independently versioned packages — exports maps, type-level breaks that still compile in-repo, enum and value-namespace loss, peerDependencies narrowing, sideEffects pruning, and breaking changes filed under the wrong changelog heading.
security
Security and secrets across the Expo SDK — command and HTML injection, path containment, dev-server exposure, credential and code-signing handling, native permission surface, and CI workflows reachable from fork PRs.
WHAT'S INSIDE
3 showing · 3 totalNothing else to set up — install it and go.
android-e2e-testing
Drives a phone emulator by remote control — tap, scroll, type, screenshot — so a screen gets checked by actually being used rather than by reading its code.
deep-code-review
Context before critique: it reads the surrounding code first, then judges the change against it, and nothing reaches GitHub until you have read the draft.
expo-api-docs
An Expo feature's public documentation is generated straight out of the comments in its code — this is how to write those comments so the published page comes out right.
HOW TO GET IT
npx skills add expo/exponpx skills add expo/expo --skill <name> --full-depthPick the skill name from the Skills tab — each entry there installs independently.