From 802834de74b9b2bcacf9d5dc9d09c9156e69bebc Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 May 2026 07:14:23 +0000 Subject: Add merge-to-main policy: nothing counts until it lands on main https://claude.ai/code/session_01YUbuZNDAoLea4cf9UGQ9qn --- .agent/preferences.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.agent/preferences.md b/.agent/preferences.md index c0c76da..f703998 100644 --- a/.agent/preferences.md +++ b/.agent/preferences.md @@ -12,7 +12,12 @@ Living record of user preferences for the Nav project. - **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 +## 2. Merge Policy — NON-NEGOTIABLE +- **Merge to `main` after every complete unit of work.** Nothing counts until it lands on `main` — that's when the user can test it. Don't batch up multiple tasks across a session and merge at the end. Each self-contained piece (a feature, a bug fix, a redesign) merges to `main` as soon as it's working and tested. +- Feature branches are short-lived and merge-forward aggressively. Push the branch, then immediately merge it to `main` and push `main`. +- **Never leave a session with completed work sitting on a feature branch.** + +## 3. 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. -- cgit v1.2.3