I can’t imagine working without a plan first.
Firstly I find it’s an excellent way for me to get very good clarity about what will be built and whether it’s going to be done in a sensible way.
Very often I don’t really know what the work will need to look like until I’ve explored the problem with the LLM towards first making the plan.
Without a plan I find myself having to do the initial understanding through code review of its generated code which is much harder than reviewing a plan, and then I invariably need the LLM to fix up what it did which is much slower when it’s doing code than working on a plan, never mind the next review I need to do.
And when the plan is good enough, I clear the context before telling it do it, which I’ve found vastly improves the quality of the LLM output.
All of those things are trivially possible without an explicit 'plan mode' built into the harness.