Given that we generate a preview you might think that we use that preview during the full code generation... but we just wastefully generate it again!
Even with the LLM response cached, it's silly that we generate the spec twice currently.
We also generate a misleading spec for iterate and extend, but that's tracked in #876. The fix for this issue is just to re-use the spec preview instead of generating a new spec.