Rectangle+Apptivate made me stop looking for an i3 alternative, after years. The first for moving windows, the second for switching between them with super+number, just like i3.
I fight against this by using it mostly on trivial tasks, which require no comprehension at all, also fixing docs and extending tests. It helps me to focus on what I love, and let the boring stuff automated.
For complex tasks, I use it just to help me plan or build a draft (and hacky) pull request, to explore options. Then I rewrite it myself, again leaving the best part to myself.
LLMs made writing code even more fun than it was before, to me. I guess the outcomes only depends on the user. At this point, it's clear that all my peers that can't have fun with it are using it as they use ChatGPT, just throwing a prompt, hoping for the best, and then getting frustrated.
Sometimes "TODO" means something you would do if you had infinite time, refactor the code completely or something that will likely need to be revisited in the future but currently adds no value to implement.
It's just a ~~reduce~~ loop, with an API call to an LLM in the middle, and a data-structure to save the conversation messages and append them in next iterations of the loop. If you wanna get fancy, you can add other API calls, or access to your filesystem. Nothing to go crazy about...
Technically it's `scan`, not `reduce`, since every intermediate output is there too. But it's also kind of a trampoline (tail-call re-write for languages that don't support true tail calls), or it will be soon, since these things loose the plot and need to start over.