Coding with large language models (LLMs) holds huge promise, but it also exposes some long-standing flaws in software: code that's messy, hard to change safely, and often opaque about what's really ...