# Branching Strategy - **Never commit directly to `main`.** `main` is always production-ready. - Day-to-day work happens on `develop`. - New work is done on `feature/*` branches off `develop`. - Merge flow: `feature/*` → `develop` → `main`. - **Squash merge** `feature/*` into `develop` (one clean commit per feature). - **Merge commit** `develop` into `main` (marks deploy points). - Always `git pull` the target branch before merging into it. # Pre-commit Hooks This project uses [pre-commit](https://pre-commit.com/) to run linting and formatting checks before each commit. **Setup:** `pip install pre-commit && pre-commit install` **Hooks configured:** - **Backend:** `ruff check --fix` and `ruff format` on Python files under `backend/` - **Frontend:** `oxlint`, `oxfmt --check`, and `tsc -b` on files under `frontend/` Frontend hooks require `npm ci` in `frontend/` first (they use `npx` to run from local `node_modules`). # Instructions - After completing a task, always ask the user if they'd like to commit the changes. - Before working on a bean, always set it to in-progress. After the changes related to the bean are committed, mark it as completed. - If a bean is marked as draft, refine it first before starting work on it. - When completing a bean that has a parent (epic, feature, etc.), check the parent's checklist/success criteria for items that can now be marked as completed and update them.