Files
musicland/AGENTS.md
T
2025-09-08 15:48:29 +02:00

2.5 KiB

Repository Guidelines

Project Structure & Module Organization

  • Entry points: App.js, index.js, index.web.js.
  • Source code: src/ (key folders: actions/, components/, hooks/, screens/, providers/, navigation/, utils/, styles/, assets/).
  • Native projects: android/, ios/.
  • Assets: assets/ and src/assets/.
  • Config: app.json, eas.json, metro.config.js, config/.
  • Backend: functions/ (Firebase Cloud Functions, Node 20).

Build, Test, and Development Commands

  • Install deps: yarn (preferred; lockfile is yarn.lock).
  • Run app: yarn start (Expo dev client), yarn android, yarn ios, yarn web.
  • Clean native builds: yarn clean (runs expo prebuild --clean).
  • Web build: yarn build:web → outputs to dist/.
  • Desktop (pake): yarn build:desktop:dev (requires dev server), yarn build:desktop:prod.
  • Firebase functions: cd functions && npm run serve (emulators), npm run deploy.

Coding Style & Naming Conventions

  • Languages: React Native (JS/TS). Indentation: 2 spaces.
  • Lint/format: ESLint (expo, prettier) + Prettier. Keep code formatted; fix all lint errors.
    • Example: npx eslint src.
  • Components and screens: PascalCase filenames, e.g., MusicDetails.js, CreateLyricsWithAi.js.
  • Hooks: prefix with use (e.g., src/hooks/useFirestorePagination.js).
  • Utilities: lowerCamelCase modules in src/utils/ or helpers/; prefer named exports.
  • Avoid duplicating inline styles; share via src/styles/.

Testing Guidelines

  • No unit tests configured yet. If adding tests, prefer Jest + @testing-library/react-native.
  • Place tests under src/**/__tests__/ or as *.test.[jt]sx near sources.
  • Until tests exist, include manual test steps in PRs (platform, device, steps, expected results).

Commit & Pull Request Guidelines

  • Commits: concise, imperative subject (≤72 chars). Optional scope, e.g., feat(login): add Google button.
  • PRs must include: clear description, screenshots/video for UI changes, reproduction and verification steps, linked issues, and notes on breaking changes.
  • Verify the app launches on Android, iOS, and Web locally; fix lint and type warnings before requesting review.

Security & Configuration Tips

  • Never commit secrets (e.g., functions/serviceAccountKey.json, API keys). Use Firebase/Expo secrets and environment config.
  • Manage runtime config via app.json/eas.json or remote config; avoid hardcoding credentials.
  • Before EAS builds, run yarn clean to resync native projects.