If I had to describe my current process, it would be to 1) brainstorm approaches 2) create a toy implementation 3) integrate solution into project. Each of these steps is interactive. For brainstorming, I’ll usually have it create the simplest implementation, check it by eye only, and if it’s on the right track I will begin adding constraints to make it more realistic. If it isn’t, throw away the conversation and start from a new prompt (don’t bother trying to get it to recognize its mistakes if they are categorical) Finally, if I’m feeling lazy, I will ask it to integrate this snippet into the real project (typically this is the first point GOT sees my actual code, and it’s just doing the mechanical transformation between the snippets).
To automate the workflow that I’m talking about does require a more agentic approach than just a chat interface provides. I guess the answer is probably in the middle somewhere.
As a contrast, aider [0] has always been focused on a "local/interactive" ai coding model. It lets you "pair program" with GPT-4, within your existing git repo code base.
You can give GPT fairly short, informal instructions and you see GPT's code edits stream back in real time. If you see that it has misunderstood, you can interrupt or undo the edit and offer more direction. This feels potentially more efficient than very carefully specifying the task up front, pre-writing the tests, firing off a long agentic job ... and then finding out 20 minutes later that your instructions weren't clear enough.
Have you considered a more interactive approach?