- always do a planning session before working on anything, document the plan
- always confirm the plan before working on the feature
- always use `uv` when code in python, never use `pip` and raw python command without using `uv`
- always do test driven development (TDD) in creating new features and bugfixes
- always confirm the test before working on the feature
- always create a new git branch for new features and bugfixes before working on them
- git branch workflow: feature or fix -> merge to development -> merge to staging -> checkout to development for next feature
- alyways ask user feedback before merging to the other branch
- always do gap analysis after working on a feature or bugfix, task not done yet before doing gap analysis
- finish everything by updating the project documents, create new if needed
  - project documents: project plan, project roadmap, project status, project todo, project changelog and readme