Most prompt engineers are playing the wrong game. They spend hours layering constraints, adding examples, and tweaking system prompts hoping the model nails it in one shot. The result? A slightly better generic answer. Worse, the more complex the prompt gets, the harder it becomes to diagnose what actually broke when the output misses. A developer on r/PromptEngineering this week shared a framework that flips that strategy entirely. Instead of optimizing the input upfront, you run a structured loop: Draft, Critique, Rewrite. He calls it Recursive Reflection, and the core insight is worth stopping for.
Models are sharper critics than they are authors. That’s not a knock on LLMs. It’s how they work. Ask for a final answer in one go and the model pattern-matches toward the most statistically probable response. Generic by design. But ask it to critique a specific draft? It gets surgical. It finds the unanchored claims, the logical gaps, the vague numbers. The difference is target size: generating from scratch means searching the entire output space, while critiquing means evaluating one specific artifact against a defined standard. That’s a fundamentally easier problem, and the model solves it noticeably better. That critical mode is where quality actually lives.
The Old Way vs. the New Way
Old approach: invest your token budget into a monster system prompt. Think through every edge case. Add formatting rules, persona descriptions, length constraints, tone guidance, and three worked examples. Hope the model infers what you actually need from all that scaffolding.
New approach: let the model generate something mediocre first, then use that draft as raw material for a brutal critique, and rewrite from there. The second approach wins consistently. Not because the model got smarter, but because you gave it a narrower target. You shifted from searching the entire output distribution to fixing three specific flaws. Smaller search space, better output. And when iteration two still misses, you have a concrete artifact to point at. “Fix this sentence” beats “try harder” every time.
The 3-Stage Loop 🔁
Don’t compress these steps. The sequencing is what builds the working context for the rewrite.
- Draft: Generate the initial deliverable. No pressure for perfection here. A mediocre draft is the correct starting point, not a failure. It gives the critique step something real to work with.
- Critique: Switch to a cynical persona. A “Hostile Senior Buyer” or a “Skeptical CTO.” Ask for exactly 3 fatal flaws. No praise, no hedging. Cap the critique at 3 items deliberately; open-ended feedback lists sprawl into noise and dilute the rewrite.
- Rewrite: Fix only those 3 flaws while keeping the original structure intact. Scope discipline here is what makes the loop scalable across multiple iterations. The persona you pick in step two is the real multiplier. Generic critics give generic feedback.
🎯 Match the Critic to the Stakes
- The Cynical CTO: Hunts for baseline-less metrics and unproven resource assumptions. Ideal for technical proposals and engineering roadmaps.
- The Hostile Target Audience: Flags anything salesy that isn’t backed by hard numbers. Use this for landing page copy or pitch decks going to skeptical buyers.
- The Structural Editor: Finds logical gaps where readers are forced to make unearned leaps. Best for long-form content where argument structure matters as much as prose. More friction in the critique step means a stronger rewrite. It’s that direct.
Here’s what the difference looks like in practice. A first-pass sentence: “This system will reduce manual triage time by approximately 60%.” Sounds plausible. Forgettable. After one critique cycle with a Cynical CTO persona: “Based on our Q1 baseline of 340 manual triage events per week, we project a 60% reduction (roughly 204 tickets) at a 0.75 confidence threshold; outliers route to the human queue.” That second sentence gets approved. The first one gets a follow-up question. Same model. Different process. The only thing that changed was running one structured critique between draft and final output.
Stack It With Chain-of-Thought
For complex outputs, layer this on top of a Chain-of-Thought draft first. When the critique evaluates a full reasoning chain instead of just prose, it gets more precise. The model stops hunting for weak sentences and starts identifying broken logic. Ask it explicitly: “Which step in the reasoning chain is the weakest?” rather than “What’s wrong with this?” That narrow question forces the model into exactly the critical mode where its output is sharpest. The rewrites are noticeably sharper.
Practitioners in the thread summed it up bluntly: iterative constraint loops outperform trying to engineer the “ultimate prompt” upfront. That tracks with what a lot of people in the field are finding. Spending hours perfecting a prompt is the slow path. One draft, one brutal critique, one targeted rewrite gets you further and faster. The full prompt template and more persona examples are available at the original post. Worth bookmarking for your next complex output.
Frequently Asked Questions
Q: Why iterate instead of just engineering the “perfect” prompt upfront?
You can’t design a single prompt that nails everything. But once you have a draft, you can attack it from a specific angle with real feedback. That concrete critique is sharper than trying to anticipate every issue before you start.
Q: How does persona choice actually improve the critique step?
Generic feedback like “make it better” gets you surface-level tweaks. But a persona with actual stakes, a CTO grilling your technical assumptions, a buyer poking holes in your claims, creates friction that surfaces real problems. The critique becomes actionable instead of fluffy.
Q: Should I use multiple personas or agents for critique?
Three personas (CTO, Hostile Buyer, Structural Editor) is a solid starting point. Some people expand to teams of reviewers, each with a different lens. More perspectives = more failure modes caught. Experiment with which roles actually matter for your work.
Q: How do I fit this into my existing workflow?
Plug it in upstream of whatever reviews you’re already doing. Add a persona-based critique before your final pass. You’re not ripping out your workflow, you’re adding a constraint layer that turns “keep iterating” into “critique from this specific role, then fix those flaws.”
Beyond One-Shot: Why Recursive Reflection (Draft → Critique → Rewrite) beats engineering a “Perfect” prompt
by u/blobxiaoyao in PromptEngineering