1) I always start with a clean code base (ie. no uncommitted changes)
2) I have a text file called prompts in which I write my first prompt for my desired change, in the initial prompt I always explicitly ask to NOT generate unit tests.
3) Copy paste the prompt to the cli
4) While the LLM is working on my prompt I go back to my prompts file and start preparing the next prompts that will build on top of the previous one
5) Once the agent is done I review every single line of code and either manually fix what I don’t like or prompt minor changes until I reach my desired result.
6) commit locally the change
7) copy paste the next major prompt from my prompts file
8) Repeat steps 4-8 until I fully implement my major change
9) Once I have my major change I prompt for adding unit tests and related documentation
10) Once my unit tests are all green I execute additional manual tests if required, squash all local commits and push for pear review
Following these steps I can work fully focused and let me emphasise again on the fact that even if the majority of code is written by the LLM I still review and read every single line of code so that when LLM companies decide to fuck us or when shit happens in production I know where to look as if I wrote the code myself like the old days
All of this works for me because I know very well the programming language and the specific domain I am working in thanks to the past experience collected in past years before LLMs.