28 lines
1.5 KiB
Markdown
28 lines
1.5 KiB
Markdown
# Branching Strategy
|
|
|
|
- **Never commit directly to `develop` or `main`.** Always create a `feature/*` branch first.
|
|
- When starting an **epic**, create `feature/<epic-title-slug>` off `develop`
|
|
- When starting a **standalone task/bug** (no parent epic), create `feature/<task-title-slug>` off `develop`
|
|
- Each task within an epic gets its own commit(s) on the epic's feature branch
|
|
- Branch naming: use a kebab-case slug of the bean title (e.g., `feature/add-auth-system`)
|
|
- When the epic/task is complete, squash merge into `develop`
|
|
|
|
# Pre-commit Hooks
|
|
|
|
This project uses [prek](https://prek.j178.dev/) (Rust-based pre-commit framework) to run linting and formatting checks before each commit.
|
|
|
|
**Setup:** `prek 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.
|