This matches how I use it. I’ll add a few other points:
4. Writing the first core version of a service or UI. I’ll typically use close to 100% of those generated lines, and then continue building with LLM assistance where it makes sense. It makes a big difference to development velocity.
5. Finding bugs. If some bug isn’t obvious to me, provide the code to an LLM and describe the problem. Its success rate is high.
6. Working with tech I’m not particularly familiar with (an extension of your #3, i.e. learning)
7. Writing documentation.
8. Reverse engineering existing code, i.e. describe some code to me so I don’t have to dig through it in detail.
9. Writing unit tests.