skills/expo-scaffold/SKILL.md
Create, bootstrap, initialize, or scaffold a brand-new React Native Expo app or Expo-centered monorepo with Expo Router, Expo SDK 55 by default, expo-dev-client, NativeWind, official gluestack setup via expo-gluestack-setup, starter gluestack components, EAS Build, and EAS Update. Use this skill only when the user is starting a new project/starter/scaffold or explicitly asks to use expo-scaffold. Do not use it for general Expo questions, code review, debugging, verification, postmortems, or existing-project changes unless the user explicitly requests a new scaffold or directly names this skill. For existing Expo apps, use a narrower skill only when the user explicitly asks to configure, set up, install, repair, or verify that specific system.
npx skillsauth add eho/agent-skills expo-scaffoldInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to build a production-oriented Expo starter. Default to Expo SDK 55 and an expo-dev-client development-build workflow unless current official Expo docs show a newer stable SDK should replace SDK 55, or the user explicitly requests a different SDK or workflow. The volatile parts are NativeWind compatibility, gluestack setup, Expo SDK transition notes, and EAS defaults, so verify current tool output and official docs before locking versions.
This skill is the orchestrator. Delegate gluestack-specific CLI command construction, user-action checkpoints, generated provider/component verification, and gluestack integration repair to the expo-gluestack-setup skill when it is available. Keep this skill responsible for project shape, scaffold ordering, final integration, and final verification.
Use this skill only when the user asks to create or scaffold a new Expo project, starter, app, or Expo-centered monorepo, or when the user explicitly names expo-scaffold.
Do not use this skill for:
expo-scaffold.For an existing app, do not infer this skill from related keywords such as Expo Router, EAS, NativeWind, gluestack, OTA updates, preview channels, or landing site. Use normal codebase work or a narrower explicitly requested skill instead.
Before editing files, infer these from the user request. Ask a short preflight decision block for any missing choices that create sticky identifiers or materially change the scaffold:
bun if the user commonly uses it, then npm.expo-dev-client; do not target Expo Go.references/project-structure.md before choosing directories.mode="system" plus CSS-variable tokens over repeated dark: class pairs when the selected gluestack version supports that strategy.create-expo-app generates Expo-specific agent files, merge the useful Expo context into the existing AGENTS.md created by project-bootstrap instead of replacing it.references/project-structure.md to choose single-app or monorepo layout.references/scaffold-workflow.md for the end-to-end sequence.create-expo-app output for the selected SDK's template syntax. Do not use next, beta, alpha, canary, or preview templates unless the user explicitly asks.references/package-installation.md before installing dependencies or repairing missing-module errors.references/nativewind.md before installing or configuring NativeWind.expo-gluestack-setup before installing gluestack packages, preparing gluestack CLI commands, or wiring any gluestack provider/components. Pass the app root, package manager, Expo SDK, NativeWind status, route layout, UI component path, and requested gluestack major. Require the ## Gluestack Handoff before wiring final starter screens.references/theme.md before adding theme tokens, provider mode, status bar behavior, or light/dark styling.references/launch-experience.md before configuring expo-splash-screen or adding an animated launch overlay.references/eas.md before creating eas.json, build scripts, update scripts, or app config update settings.examples/ as starting points for the standard starter files, then adapt to the actual project structure and selected package manager.references/verification.md.user_init_required, user_add_required, or blocked, stop before claiming the scaffold is complete. Ask the user to run the exact command from the handoff for user-action outcomes, then resume only after inspecting the generated output.expo-gluestack-setup first and keep this orchestrator consuming the same handoff contract..git or accidental lockfiles.app.json or app.config.*, eas.json, babel.config.js, metro.config.js, tailwind.config.js, and route files.references/package-installation.md: use expo install for Expo/RN packages where compatibility matters, use the selected package manager for ordinary JS/tooling packages, and do not manually list transitive dependencies unless there is a documented peer/direct requirement or a verified undeclared runtime import workaround.node_modules link folders. Do not remove package-local link folders just because a root bun.lock exists; remove only generated dependency trees/caches that are explicitly excluded by the cleanup rules.expo run:ios and expo run:android can generate native directories; include them as development-build convenience scripts only with a note about this behavior.AGENTS.md as the repository's project-rules source of truth. If Expo's scaffold generates AGENTS.md, CLAUDE.md, or .claude/settings.json, treat them as input material: extract Expo-specific SDK docs, commands, package-manager notes, and runtime constraints into the existing AGENTS.md, then remove duplicate generated agent files unless the user explicitly wants them kept.expo-gluestack-setup, give it ownership of gluestack files only and integrate its handoff in the main scaffold sequence.At completion, the project should contain:
expo-dev-client installed and the project configured for development builds, not Expo Go.global.css, and TypeScript declarations.examples/: app config, Babel, Metro, Tailwind, TypeScript, .gitignore, package scripts, and monorepo package configuration when relevant.expo-gluestack-setup, with an accepted handoff outcome and verified provider/components.expo-splash-screen config plugin, including dark-mode colors/assets where available.docs/architecture/architecture.md, docs/architecture/tech-stack.md, and relevant operational docs. If the repo has no docs convention, create lightweight seed docs only when that fits the project or report that no architecture docs were present.AGENTS.md updated with merged Expo-generated agent context, when create-expo-app produced it.Post-scaffold operations section with exact commands and required/optional/conditional account, device, credential, deployment, and update steps that still need user action.https://expo.dev/sdkhttps://docs.expo.dev/versions/latest/https://docs.expo.dev/build/setup/https://docs.expo.dev/eas-update/getting-started/https://docs.expo.dev/versions/latest/sdk/splash-screen/https://www.nativewind.dev/docs/getting-started/installationhttps://gluestack.io/ui/docs/home/getting-started/installationhttps://gluestack.io/ui/docs/home/theme-configuration/dark-modedocumentation
Compact the current conversation into a handoff document for another agent to pick up.
tools
--- name: expo-ios-agent-device description: Drive the Kotoba Expo iOS simulator effectively with agent-device. Use when verifying iOS UI behavior, testing Expo dev-client flows, seeding simulator app state, diagnosing accessibility selectors, or automating simulator QA for this repo. --- # Expo iOS Agent Device Use this skill when automating Kotoba on the iOS simulator with `agent-device`. ## Preflight Run these before planning commands: ```sh agent-device --version agent-device help workf
development
Create or update a DESIGN.md design system specification for websites, apps, prototypes, or product designs. Use when the user asks to generate a DESIGN.md, design system spec, UI specification, frontend design source of truth, Stitch/Google Design.md-style document, or agent-ready design tokens and component guidelines from images, descriptions, screenshots, mockups, brand notes, or raw product requirements.
documentation
Run the review-revision loop for an existing design doc: call design-doc-reviewer, address Critical Gaps and Minor Issues, repeat until clean, then mark the doc Revised for feature-delivery. Use when asked to review and revise, repeat until no gaps remain, prepare a design doc for feature delivery, or start a reviewer subagent and address feedback. Use design-doc-reviewer for one-time read-only critique.