LLMs seem very well-suited to generating written specifications, like they do with writing the code itself. They can even help with the "define problem" part.
EDIT: for example, Character.ai as an example of character prompting. You can prime an LLM with a prompt so that it asks you certain types of questions.