Claude Code for React Native: The CLAUDE.md, Hooks and Checks That Keep AI-Generated Expo Code Shippable A developer has published a setup for keeping AI-generated Expo/React Native code mergeable with Claude Code, centered on a project-level CLAUDE.md that documents the stack, commands, rules and a "never" list. The configuration also pre-approves safe commands and blocks risky ones in a committed .claude/settings.json, and adds hooks that type-check and lint every edit, with work broken into small planned tasks and reviewed against a mobile-specific checklist. The developer argues output quality depends less on prompting than on the project scaffolding around the agent. Claude Code can write most of a React Native screen in a minute. Whether that code is shippable depends far less on the prompt than on the project around it. Give it a CLAUDE.md that describes your Expo stack and its rules, restrict what it's allowed to run, add hooks that type-check and lint every edit, work in small planned tasks, and review the output against a mobile-specific checklist. That setup turns "it generated something" into "it generated something we can merge". AI coding agents are very good at React Native in general and surprisingly bad at your React Native app in particular. They don't know you use Expo Router instead of React Navigation stacks, that native packages must be installed with npx expo install , that your Supabase tables need RLS, or that a web-only library will break the Android build. Left to guess, they guess like the average of the internet. This guide is the setup we use to stop the guessing. Claude Code reads a CLAUDE.md file at the root of your project at the start of every session. It's the single most effective place to improve output quality, because every instruction in it applies to every task. Run /init inside Claude Code to generate a first draft from your codebase, then rewrite it with the things the code can't tell it. A good React Native CLAUDE.md covers four things: the stack, the commands, the rules and the "never" list. Project: Expo + Supabase mobile app Stack - Expo SDK managed workflow with development builds, TypeScript strict mode - Expo Router for navigation file-based, in app/ . Do not add React Navigation stacks manually. - NativeWind for styling. Use className, not StyleSheet, unless animating. - Supabase for auth, Postgres and storage. Client lives in src/lib/supabase.ts. - TanStack Query for server state. No Redux. Commands - Install a package: npx expo install