In general, the theme I'm seeing is that we are providing the old tools to a new way of software engineering. Similar to you, I think the abstractions and tools we will work with will be radically different.
Some things I am thinking about:
* Does git make sense if the code is not the abstraction you work with? For example, when I'm vibe coding, my friend is spending 3hrs trying to understand what I did by reading code. Instead, he should be reading all my chat interactions. So I wonder if there is a new version control paradigm
* Logging: Can we auto instrument logging into frameworks that will be fed to LLMs
* Architecture: Should we just view code as bunch of blocks and interactions instead of reading actual LOC. What if, all I care is block diagrams. And I tell tools like cursor, implement X by adding Y module.
Regarding reading all your chat interactions I'd find that a really tedious way to understand what the code will actually be doing. You might have "vibe coded" for 3 hours, resulting in a bunch of code I can read and understand in a half hour just as well. And I'm not interested in all the "in between" where you're correcting the LLM misunderstanding etc. I only care about the result and whether it does the right thing(s) and whether the code is readable.
If the use of an LLM results in hard to understand spaghetti code that hides intent then I think that's a really bad thing and is why the code should still go through code review. If you, with or without the help of an LLM create bad code, that's still bad code. And without the code and just the chat history we have no idea what we even actually get in the end.
This is changing and I really expect everything to be different 12 months from now.