By maintainable, I mean you can continue adding features or making bug fixes without playing whack-a-mole on bugs, or without making the codebase exponentially larger and more complex over time. LLMs can technically understand large and complex codebases, but it gets more expensive for them to read the whole thing and more finnicky to prompt them correctly.
I think regeneration from scratch is possible if you have a good enough spec, but if you let an LLM write the spec then the spec itself will get longer and more complex over time in ways that don’t track with the complexity of your goals.
By maintainable, I mean you can continue adding features or making bug fixes without playing whack-a-mole on bugs, or without making the codebase exponentially larger and more complex over time. LLMs can technically understand large and complex codebases, but it gets more expensive for them to read the whole thing and more finnicky to prompt them correctly.
I think regeneration from scratch is possible if you have a good enough spec, but if you let an LLM write the spec then the spec itself will get longer and more complex over time in ways that don’t track with the complexity of your goals.