Once the project was ready, I fed the entire codebase into NotebookLM. I uploaded all the .py files as plain text files, ...
A slower "reasoning" model might do more of the work for you -- and keep vibe coding from becoming a chore.