31 lines
1.8 KiB
Markdown
31 lines
1.8 KiB
Markdown
# Repository Guidelines
|
||
|
||
## Project Structure & Modules
|
||
- `app/`: Android app (Jetpack Compose UI, DI, data, Room, navigation).
|
||
- `ai/`: AI SDK and provider integrations (OpenAI, Google, Anthropic) with optional native/NN deps.
|
||
- `highlight/`, `search/`, `tts/`, `common/`: Feature and utility modules.
|
||
- Tests: `ai/src/test` (unit), `ai/src/androidTest` (instrumented); `app/src/test` scaffolded.
|
||
- Assets: `app/src/main/assets`, resources under `app/src/main/res`.
|
||
|
||
## Coding Style & Naming
|
||
- Kotlin with 4‑space indent, 120 char line limit (`.editorconfig`).
|
||
- Classes/objects: PascalCase; functions/properties: camelCase; resources: snake_case.
|
||
- Compose: Composables start UpperCamelCase; pages typically end with `Page` (e.g., `SettingProviderPage`).
|
||
- Keep modules isolated; share utilities via `common`.
|
||
|
||
## Testing Guidelines
|
||
- Frameworks: JUnit (unit), AndroidX test/espresso (instrumented).
|
||
- Place unit tests alongside module under `src/test/...`; instrumented under `src/androidTest/...`.
|
||
- Name tests `*Test.kt` and cover parsing, providers, and critical transforms.
|
||
- Validate instrumented flows for streaming/SSE where feasible.
|
||
|
||
## Commit & PR Guidelines
|
||
- Use Conventional Commits: `feat:`, `fix:`, `chore:`, `refactor:` … with a clear, concise subject. Scope optional.
|
||
- Keep PRs focused; include description, linked issue, and screenshots for UI changes.
|
||
- Run `test` and `lint` before opening PRs; note any platform caveats (device/emulator).
|
||
- Per README: do not submit new languages, unrelated large features, or broad refactors/AI‑generated mass edits.
|
||
|
||
## Security & Configuration
|
||
- Never commit secrets or signing files. Keep API keys in secure storage; avoid hardcoding.
|
||
- `local.properties` holds signing values; `google-services.json` stays in `app/` and is ignored by Git.
|