2. ask an LLM to do the needful and never ever look at the results except to count LOC
I'm on my third iteration, after constantly log jamming previous versions. Most steps aren't "run pytest", they're gates that guard against an LLM's bias to continuously add more and more complexity to a system.
I'm aware of the irony of having a complex system to mitigate complexity, but the key difference is these rules bound complexity growth. If you're legitimately interested in the details, let me know. I'm too tired to write up much more but would be willing to drop in a LLM-authored summary of the details.
(Suggesting this route, so that we don't spam HN too much.)
This begs the question: If you're using LLMs heavily, wouldn't it be better from a time, correctness, and token perspective to have a more compact and maintainable code base? We don't know what the personal finance app does, how quickly it runs, how much it improves your finance management, how easy it is to install and update etc, or how maintainable it is by people or LLMs. What you did post is a red flag of consequence, without mitigating factors: We know only the red flag.
Another perspective: I use LLMs heavily as well, but don't find they appreciably increase code verbosity, for a given set of features/requirements.