Files
AndroidJava/rikkahub/AGENTS.md
T
coco 7846a45f2c a
2026-07-03 15:47:27 +08:00

31 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 4space 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/AIgenerated 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.