always use uv to run code, tests and manage dependencies.
always ensure code is well formatted before committing using `uv run task format`.
always ensure code passes linting checks using `uv run task lint`.
always run tests using `uv run task test` before pushing changes.