Imported from yberkayinci/mola (
AGENTS.md). Install upstream withnpx skills add yberkayinci/mola. Copyright stays with the author.
Agent Instructions
Read these before editing:
.github/copilot-instructions.mddocs/PRODUCT_SPEC.mddocs/DATA_SCHEMA.mddocs/FINALIZATION.md
Current repository state
main is the release history. There is one working branch pattern and no integration branch:
main
^
| pull request
|
feature/<small-feature>
For each change:
- branch from the latest
main; - keep the branch to one coherent feature or fix;
- run
./gradlew testand./gradlew assembleDebugbefore pushing; - perform the smallest emulator/physical-device check that exercises the changed behavior;
- open a pull request into
mainand let CI pass before merging.
Never develop directly on main.
Non-negotiable product rules
- Preserve the user-defined threshold: AI never recommends, judges, or changes it.
- Never diagnose addiction or another medical/mental-health condition.
- Never shame, moralize, label the person, or state unsupported causation.
- Crisis-signalling external text must be handled locally and must not enter the normal Gemini/repair path.
- Numeric report facts are computed locally.
- Keep the deterministic fallback usable.
- Keep user profile/records device-local and preserve one-action data deletion.
- Never commit secrets, a real
local.properties, or akeystore.properties. - The app ships with no provider credential. Gemini is reached only through a key the user
enters at runtime (
AiSettingsStore); never reintroduce a build-time or bundled key. LocalAiGatewayis the shipped default engine, not a test double. Keep it complete enough to be the product on its own.
Architecture boundaries
ui/— Compose product UIoverlay/— real system intervention overlaypermissions/,usage/,monitor/— Android coreai/— both engines, prompts, policy compiler, validators, settings, safetydata/— local models/repository/demo recordsMolaApp.kt— integration/navigation boundary
Do not casually refactor cross-cutting architecture while implementing a small feature. Prefer a narrow change with explicit ownership.
Validation expectations
For Android-core/overlay/voice changes, test the affected path on a physical phone when possible and report device/Android version. For pure logic, add/update unit tests. For AI changes, rerun the relevant golden scenarios in docs/AI_EVALUATION.md, plus offline fallback when network behavior changed.
User-facing copy is Turkish. Code, commit messages, and technical documentation are primarily English.
