agentleFS
richkuorichkuo/rk-skills/skills/expo-app-initialize/SKILL.md

expo-app-initialize

Skill50 starsChanged 5 days agoMITView on GitHub

Scaffolds a new Expo React Native app with the tabs template, expo-router, react-native-mmkv, expo-dev-client, and expo-iap at their latest compatible versions using Bun, then runs prebuild and writes the project CLAUDE.md commands. Invoke only with /expo-app-initialize <project-name>.

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 6 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Create a production-ready Expo React Native app from the tabs template and configure it with the standard dependencies.

    line 10
  2. Distinctive:

    Use the latest version of every package that is compatible with the project.

    line 16
  3. Very specific:

    Create the project with create-expo@latest, so the app starts on the newest stable Expo SDK.

    line 18
  4. Very specific:

    After installation, run bunx expo install --check and bunx expo-doctor.

    line 21
  5. Distinctive:

    Run each step in order and wait for it to finish before the next.

    line 25
  6. Very specific:

    Create the project: bunx create-expo@latest <project-name> --template tabs --yes, then work inside the new directory.

    line 27
  7. Distinctive:

    Check the packages that Expo does not track, as the Versions section describes.

    line 29
  8. Very specific:

    Run bunx expo install --check and bunx expo-doctor, and fix every version mismatch they report.

    line 31
  9. Very specific:

    Run prebuild as the final setup step: bunx expo prebuild.

    line 32
  10. Very specific:

    Write the commands section into CLAUDE.md in the project root.

    line 33
  11. Distinctive:

    Ask the user only when they give a non-standard project location, when their requirements conflict with this setup, or when an error cannot …

    line 38
  12. Distinctive:

    Before reporting completion, confirm:

    line 42
  13. Very specific:

    Read the scripts in package.json after prebuild, and write the bun run lines to match the scripts that exist.

    line 52
  14. Distinctive:

    Follow the Response Style section of the global guidelines.

    line 72

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Expo App Initialize

Create a production-ready Expo React Native app from the tabs template and configure it with the standard dependencies. Use Bun for every command. Never use npm, yarn, or npx; use bunx for one-off tools.

Project name: $ARGUMENTS. If that value is empty or starts with a dollar sign (Codex does not replace the placeholder), take the name from the invocation message. If no name was passed, ask the user for a project name before running anything.

Versions

Use the latest version of every package that is compatible with the project. Never copy a version number from memory or from this skill.

  • Create the project with create-expo@latest, so the app starts on the newest stable Expo SDK.
  • Before any install, read the project's Expo SDK and React Native versions from package.json. For each package that Expo does not track (react-native-mmkv, react-native-nitro-modules, expo-iap), check the latest published version, its required peer dependencies, and its documented minimum Expo SDK and React Native versions. Choose the newest version that supports the project's React Native version and architecture, and record it with every required peer dependency. If the chosen version is older than the latest, tell the user why.
  • Install every package with bunx expo install <package>. It selects the version that matches the project's Expo SDK for packages Expo tracks, and the latest version for others. Install the versions and peer dependencies that the check chose in the same command.
  • After installation, run bunx expo install --check and bunx expo-doctor. Fix every version mismatch they report before prebuild.

Workflow

Run each step in order and wait for it to finish before the next. If a step fails, stop and report the exact error with troubleshooting steps. Never continue after a failed step.

  1. Create the project: bunx create-expo@latest <project-name> --template tabs --yes, then work inside the new directory.
  2. Confirm expo-router is already in package.json. The tabs template includes it. Install it with bunx expo install expo-router only if it is missing.
  3. Check the packages that Expo does not track, as the Versions section describes. Record the chosen version and the required peer dependencies of each package.
  4. Install the dependencies: bunx expo install react-native-mmkv react-native-nitro-modules expo-dev-client expo-iap, plus every required peer dependency that step 3 found. Write a package as <package>@<version> when step 3 chose a version older than the latest.
  5. Run bunx expo install --check and bunx expo-doctor, and fix every version mismatch they report.
  6. Run prebuild as the final setup step: bunx expo prebuild. If the user asked for one platform only, run bunx expo prebuild --platform <android|ios>. On Windows, prebuild skips iOS with a warning; this is expected, so report it and continue.
  7. Write the commands section into CLAUDE.md in the project root. Never overwrite or remove template content, and never add a second # Project Commands section.
    • CLAUDE.md exists, as a file or as a symlink to AGENTS.md: append the commands section to it once.
    • CLAUDE.md is missing and AGENTS.md exists: create CLAUDE.md with @AGENTS.md as its first line, then the commands section. Do not change AGENTS.md.
    • Neither file exists: create CLAUDE.md with the commands section.

Ask the user only when they give a non-standard project location, when their requirements conflict with this setup, or when an error cannot be resolved automatically.

Verification

Before reporting completion, confirm:

  • The tabs template exists: app/(tabs) and app/_layout.tsx.
  • package.json lists every required dependency and peer dependency.
  • bunx expo install --check and bunx expo-doctor report no problems.
  • Prebuild finished with no errors, and the native directory of each platform that prebuild generated exists: android/ and ios/ by default, only android/ on Windows, or only the platform the user asked for.
  • CLAUDE.md contains the commands section exactly once, and AGENTS.md, if the template created it, keeps all of its template content.

Commands section

Read the scripts in package.json after prebuild, and write the bun run lines to match the scripts that exist.

# Project Commands

## Development
- `bun start` - Start the Expo development server
- `bun run ios` - Run on iOS simulator
- `bun run android` - Run on Android emulator
- `bun run web` - Run in web browser

### Build and Deployment
- `bunx expo prebuild --clean` - Clean and regenerate native code
- `bunx eas-cli build --platform android` - Build for Android using EAS
- `bunx eas-cli build --platform ios` - Build for iOS using EAS
- `bunx eas-cli build --platform android --auto-submit` - Build and auto-submit to Play Store

Report

Follow the Response Style section of the global guidelines. Include the project directory name, the Expo SDK version, and each installed package with its version and purpose:

  • expo-router: file-based routing.
  • react-native-mmkv: high-performance key-value storage.
  • react-native-nitro-modules: native module runtime that react-native-mmkv requires.
  • expo-dev-client: custom development builds and native code.
  • expo-iap: in-app purchases. Warn that Apple and Google store configuration is still required.

State any package that is not on its latest version, and why. Suggest bunx expo run:ios or bunx expo run:android as next steps.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.