It may sound absurd to review an implementation with the same model you used to write it, but it works extremely well. You can optionally crank the "effort" knob (if your model has one) to "max" for the code review.
Frequently returns, "Oh, you are absolutely correct, let me redo this part better."
However, I have since condensed this into 2 prompts:
1. Write plan in Plan Mode
2. (Exit Plan Mode) Critique -> Improve loop -> Implement.