CLAUDE.md@templates · git:20260728.436a435 · 2026-07-28 · sha256 b790c885e7b72c34

CLAUDE.md@templates git:20260728.436a435A

Immutable. This exact content is served forever at /api/v1/blob/b790c885e7b72c34.

<!--
CLAUDE.md template for React Native / Expo projects.
Copy what applies into your project's CLAUDE.md and delete the rest.
Short and true beats long and aspirational: every line here is a rule
the agent can actually follow, not a wish.
-->

## Project

<!-- One paragraph: what the app is, which stack (Expo SDK version, state
management, backend), where the entry points live. -->

## Dependency rules

- Install React Native libraries with `npx expo install <pkg>`, not the package manager directly. It picks the version tested against this SDK.
- After any dependency change, run `npx expo-doctor` and fix what it flags.
- Do not add a new native dependency without flagging it: native deps require a new store build and shift the OTA runtime fence.

## Native project rules

<!-- Keep ONE of these two blocks. -->

<!-- CNG / managed: -->
- The `ios/` and `android/` folders are generated by prebuild. Never hand-edit them; change app config or config plugins instead, then `npx expo prebuild --clean`.

<!-- Bare workflow: -->
- Native projects are source of truth; changes go through `ios/` and `android/` directly and get committed.

## Commands

- Start: `npx expo start`
- iOS simulator: `npx expo run:ios`
- Android emulator: `npx expo run:android`
- Tests: `npm test`
- Types: `npx tsc --noEmit`
- Lint: `npm run lint`

## Code rules

- TypeScript strict; no `any` without a comment explaining why.
- No secrets in code or in app config. Public keys only; anything private stays server-side.
- Errors reported to monitoring must be real Error instances with a meaningful name, never bare objects.
- Network calls need a timeout and an abort path. Assume the network hangs, because it does.

## Release rules

- OTA updates only when zero native changes since the last store build. Otherwise: store build.
- Version bumps are deliberate; build numbers auto-increment.

## Before finishing any task

- `npx tsc --noEmit` passes
- Tests pass
- On UI changes: state which screens you verified and on which platform