LLMs do not meaningfully "refactor" at anything other than a junior engineering level. They can basically do some window dressing and move code around between files. True refactoring means creating new abstractions, which LLMs can't do because they can't form world-models.

@nateberkopec even if you dramatically narrow your definition of “refactoring” to be like “rename this variable” or “extract this block of code to a function”, JetBrains software did this far more reliably 10 years ago.

LLMs are useful and I do use them, but they don’t possess even basic “reasoning” capabilities.