# User Preferences & Workflow Quirks Living record of user preferences for the Nav project. ## 1. Interaction & Workflow - **Safety First:** Cautious and deliberate action. - **Checkpoint Model:** Research -> Strategy -> GO. ## 3. User Context - **Solo developer who is also the sole user.** The user is both the target audience and the developer. Optimize for their experience as a sailor, not for a hypothetical general public. - **Reinstall resilience is non-negotiable.** All persistent data (tracks, settings) must survive app uninstall/reinstall. Never use `getExternalFilesDir()` or other app-private storage for user data. - **Pragmatic about implementation quality.** One-off solutions and temporary hacks are acceptable — just flag them clearly and ensure they get cleaned up in a follow-up. - **Debug logging:** The in-app debug log (`NavLogger`) is the primary debugging tool. ADB (`adb logcat`) is occasionally available but should not be assumed. Log anything useful to `NavLogger`, not just to Android's `Log`. ## 2. Repository Conventions — NON-NEGOTIABLE - **Default branch is `main`.** Always has been, always will be. - When the user says "main", "master", or "the default branch" they all mean `main`. - **CI/CD (`.github/workflows/android.yml`) triggers on `main`.** Firebase App Distribution only fires on pushes to `main`. Never change the trigger branch without explicit instruction. - Before any merge or push, verify: `git branch --show-current` is `main` and `git remote show origin | grep "HEAD branch"` shows `main`. - Never create or develop on `master`. If `master` ever appears, rename it to `main` immediately.