---
sidebar_position: 1
title: "Overview & Starting Work"
---

# Overview & Starting Work

> **Audience:** All developers on the team. This document describes the standard workflow to follow from the moment a task is assigned to the moment it is marked as complete.

---

# Overview

The team uses a **rebase-then-merge** workflow. Each task is developed in isolation on its own feature branch, rebased onto the latest `dev` before merging, and then both branches are pushed to remote together. This keeps the `dev` branch history clean and linear.

---

# Workflow

## Step 1 — Read the Task

- Open Gitea and navigate to the issue assigned to you.
- Read the task carefully, including any comments or attachments.
- Make sure you understand the requirements before starting. If anything is unclear, ask before writing any code.

## Step 2 — Start the Timer

- Start your timer as soon as you begin working on the task.
- The timer should reflect actual working time on the task, so start it now and not before you have read and understood it.

## Step 3 — Update Your Local `dev` Branch

Before creating your feature branch, make sure your local `dev` is up to date:

```bash
git checkout dev
git pull
```

> Never branch off a stale `dev`. Always pull first to avoid basing your work on outdated code.

## Step 4 — Create the Feature Branch

Create and immediately check out a new branch from `dev`, named after the task number:

```bash
git checkout -b feature/<task_number>
```

For example, for task #42:

```bash
git checkout -b feature/42
```

> The branch name must follow this exact format — `feature/` followed by the task number. This links the branch clearly to the task on Gitea.
