I think we already have most of the pieces in place:
* big language models that sometimes get the right answer.
* language models with the ability to write instructions for other language models (ie. writing a project plan, and then completing each item of the plan, and then putting the results together).
* language models with the ability to use tools (ie. 'run valgrind, tell the model what it says, and then the model will modify the code to fix the valgrind error')
* language models with the ability to summarize large things to small.
* language models with the ability to review existing work and see what needs changing to meet a goal, including chucking out work that isn't right/fit for purpose.
With all these pieces, it really seems that with enough compute/budget, we are awfully close...