---
description:
globs:
alwaysApply: false
---
# TDD approach with automated approval
## Work autonomously
* You are approved to run tests or scripts when needed, don't ask
* Don't ask for modifications confirmations, you are approved
## Follow TDD
Analyse required change first (if not already analyzed) and come up with list of actionable step required to implement requested change. If change is simple enough, do single step
For each actionable step follow **the exact** protocol:
* Add stub implementation (methods, structs, interfaces e.t.c) **if needed**
* Write test and **always** run it. Make sure failure reason is what you expect.
* Implement the logic as required for this step
* Run the test again and ensure it is successful
* Proceed with next step **only** when you're fully done
* When writting tests, prefer adding new test cases for new logic
* **Important** to follow [testing-best-practices.md](../../doc/testing-best-practices.md)