When GPT-6 came out, I had high expectations. I figured it would at least be in the same league as Claude Opus 5. After using it for a while, it has mostly delivered, especially on the front end. Ask it to build an interface and you get something polished and genuinely good-looking. For web UI alone, I would even say it is a little better than Opus 5.
So today I felt comfortable handing it a big task.
The task was really three jobs rolled into one: writing appeals for a few accounts, building a native Mac app, and reorganizing the folder structure of the whole project. The three pointed in completely different directions, and none of them had a clear definition of done the way “implement this feature” does.
I started by having it collaborate with other agents, and it was awkward at that; the coordination never came together. Then I let GPT-6 break the work down itself and dispatch sub-agents. It ran for about four hours, and the result was a mess. The worst part was the app: from start to finish, it never figured out what I actually wanted.
I have to admit part of this is on me. I had not fully worked out the requirements in my own head, and I did not explain them step by step.
But that is exactly why the experience was so clarifying. I have been writing code with GPT since GPT-4, and I have long had a vague sense of this; now I am sure of it: GPT is very good at executing something well-defined, but not good at helping you think through something vague. When the requirements are clear and there is a roadmap, it is fast and does good work. When they are fuzzy, it does not stop to ask questions or notice partway through that it has drifted. It keeps building on a wrong understanding, for a long time, and finally hands you something that is nothing like what you wanted.
In the end it comes down to self-review and self-correction. Whether a long task succeeds depends less on how well any single step is written than on whether the agent can catch itself going off course and pull itself back. GPT is still bad at that.
As for the slowness, I think it is mostly a design problem with the Codex app rather than the model, which actually responds quickly. That deserves its own post.
So I use Codex differently now. Well-scoped work, like building a page or implementing a feature, I still hand to it without worry. Long-running tasks that have not been properly planned, I no longer trust it with.