expo-duooomi-app/AGENTS.md

41 lines
2.3 KiB
Markdown

# Repository Guidelines
## Project Structure & Module Organization
- `app/` holds Expo Router screens, layouts, and route groups.
- `components/`, `hooks/`, `utils/`, and `constants/` contain shared UI, logic, helpers, and values.
- `ble/` contains Bluetooth-related flows and device integration code.
- `assets/` stores images and fonts; `global.css` covers web styling.
- `@share/` hosts shared modules used across apps in the workspace.
- `android/` is the generated native project after `expo prebuild`.
- `scripts/` provides maintenance tools; `dist/` is build output.
## Build, Test, and Development Commands
Use `bun` as the package manager (`package.json` `packageManager`).
- `bun install` installs dependencies.
- `bun run start` runs Expo dev server with `.env.development`.
- `bun run start:test` or `bun run start:prod` switch env files.
- `bun run android`, `bun run ios`, `bun run web` start platform builds.
- `bun run prebuild:android` generates the Android native project.
- `bun run lint` runs ESLint with Prettier rules.
- `bun run build:development:android` or `bun run build:production:ios` triggers EAS builds.
- `bun run update:production` publishes OTA updates.
- `bun run export:icp:android` or `bun run export:icp:ios` generates ICP source bundles.
## Coding Style & Naming Conventions
- TypeScript is strict; `@/` maps to repo root via `tsconfig.json`.
- Prettier settings in `.prettierrc`: 2-space indent, single quotes, no semicolons.
- ESLint enforces sorted imports and unused import cleanup; run `bun run lint`.
- File names should be kebab-case; avoid `react-native` `Text` in favor of `@/components/ui`.
## Testing Guidelines
- No automated test runner is configured. If adding tests, place them next to modules or in `__tests__/`, add scripts in `package.json`, and document how to run them.
## Commit & Pull Request Guidelines
- Commits typically use a short type prefix (`feat:`, `fix:`, `refactor:`, `add:`, `update:`) and a concise summary.
- PRs should include a description, testing notes (device/simulator and platform), and screenshots or recordings for UI changes.
## Configuration & Environment
- Environment files live in `.env.*` and are loaded with `dotenv` in scripts.
- Build profiles and OTA channels live in `eas.json`; do not commit secrets.