I am currently building a very large feature and the only way to do this properly is to do it in small steps.
No matter what I prompt, I always have to spend a bunch of time reigning it in during planning (and implementation!) because it tries to solve the whole thing end-to-end or add enough boilerplate so that a code path (that is still under construction) returns a meaningful (but wrong) value.
And then of course every time I start a new session it gets very upset that the feature I am trying to implement will never work because the main user entry point has a 'not fully implemented' exception that definitely needs to be removed immediately!