You build a self-correcting AI content agent by running two roles in a loop instead of one prompt once: a Writer drafts, a Critic scores that draft against your written brand rules and returns named fixes, the Writer revises, and they repeat until the Critic passes it. The AI catches its own weak hooks and fluff before you ever read a word.
That changes what lands on your desk. Instead of editing a mediocre first draft by hand, you read a draft that already survived three rounds of its own scrutiny. Here's the exact loop, the editable brand-rules checklist it scores against, and how to run it today with zero code.
A self-correcting AI content agent is one prompt structure where the model plays two roles that argue: it writes, then it grades its own writing against explicit rules, then it rewrites to fix what it flagged, looping until the work clears the bar. You're not getting a single shot at a draft. You're getting a draft that already lost a few arguments with itself.
A self-correcting AI content agent is a Writer + Critic loop: a Writer role produces a draft, a Critic role scores it against a named brand-rules checklist and returns specific fixes (not vibes), the Writer applies them, and the cycle repeats until the Critic passes the draft or hits a round cap. A human still approves the final.
This is the reflection pattern. It descends directly from the ReAct paper (Yao et al., 2022), which interleaves Reason, Act, and Observe in a cycle rather than firing once. The hub explains the loop primitive in full: what are agentic loops. The short version is goal, act, observe, decide, repeat, until a stop condition. Here the "observe" step is a Critic reading the draft, and the stop condition is "Critic passes."
Because one prompt has no second opinion, and a loop does. When you ask a model to "write a great LinkedIn post," it produces its best guess in one pass and stops. It never asks whether the hook actually hooks, whether line three is filler, whether it slipped into AI-tell phrasing. A single prompt can't see its own blind spots because nothing is looking.
The loop adds the thing that was missing: a critic with a checklist. Peter Steinberger put the shift bluntly when he said you shouldn't be prompting agents anymore, you should be designing loops that prompt your agents. Boris Cherny, who leads Claude Code at Anthropic, ships the same pattern: Claude Code has a real /loop command that re-runs a prompt on an interval with fresh context, and a /goal command that keeps an agent working until a completion condition is met. Matt Van Horn (printingpress.dev) packaged the idea for a wider audience and lives by "skillify everything," turning any repeated job into a reusable tool.
You don't need their tooling to start. You need two roles and a rule that the second role can't be polite.
Concrete, named, pass/fail rules, never "make it better." The Critic is only as good as the checklist you hand it. Vague rules produce vague feedback. Specific rules force specific fixes. Here's a starter checklist you can paste and edit. Cut what doesn't fit your brand, add what does.
The trick is that the Critic must return named fixes tied to these rules: "Line 1 fails Hook Strength, scored 5, rewrite to lead with the tension," not "the intro could be stronger." Named fixes are actionable. Vibes are not. If you want a deeper take on stripping the machine sound out of copy, see how to write copy with AI without sounding like AI.
Here's the whole thing in one block. Paste it into any chat model, fill the brackets, and it runs both roles and the loop in a single conversation. No code, no setup.
You will play two roles and loop between them until the work passes. CONTEXT Brand: [YOUR BRAND, ONE LINE] Voice: [e.g. direct, no fluff, second person, contractions, army-vet energy] Asset to write: [e.g. a 150-word LinkedIn post about X] Audience: [WHO] Goal of the piece: [e.g. get a reply, a click, a save] BRAND RULES (the Critic scores against these, pass/fail) 1. Hook strength: first line earns the second, score 1 to 10, below 7 fails. 2. No fluff: flag any sentence that could be cut with no loss. 3. No AI tells: ban "delve", "unlock", "supercharge", "game-changer", "in today's fast-paced world", "it's important to note". Any hit fails. 4. On-voice: matches Voice above. Flag press-release or professor tone. 5. Specific over generic: flag vague claims with no example or number. 6. Honest: no income claims, no fake scarcity, no invented stats. [ADD OR REMOVE RULES HERE] PROCESS Step 1 (WRITER): Draft the asset. Step 2 (CRITIC): Score the draft against every rule above. For each FAIL, name the rule, quote the offending line, and give one specific fix. End with a verdict: PASS or REVISE. Step 3 (WRITER): If REVISE, rewrite applying every named fix. Do not touch lines that passed. Repeat Steps 2 and 3 until the Critic returns PASS, or until 4 rounds, whichever comes first. OUTPUT Show EVERY pass labeled (Draft 1, Critique 1, Draft 2, Critique 2, ...) so I can watch it improve. Then print the final passing draft on its own.
The two rules that make this work: the Critic must quote the offending line and name the rule it breaks, and the loop must print every pass. If you hide the passes, you can't trust the result or learn from it. If you let the Critic stay vague, the Writer has nothing concrete to fix.
It looks like an argument that gets shorter each round. Say you asked it for a LinkedIn post. Here's the shape of what you'd watch scroll by, trimmed for space.
Draft 1 (Writer): "In today's fast-paced world, businesses are unlocking new ways to grow with AI…"
Critique 1 (Critic): "FAIL, Rule 3 (AI tells): line 1 uses 'in today's fast-paced world' and 'unlocking.' FAIL, Rule 1 (Hook): scored 4, opens with a cliche, no tension. Fix: cut both phrases, open with a specific cost the reader is paying right now. REVISE."
Draft 2 (Writer): "Most teams still hand-edit every AI draft. That's the tax nobody talks about…"
Critique 2 (Critic): "Rule 1 (Hook): scored 8, names a real cost. Rule 3: clean. Rule 5 (Specific): 'most teams' is vague, add a concrete example. Fix: replace with a named scenario. REVISE."
Draft 3 (Writer): fixes the one remaining flag.
Critique 3 (Critic): "All rules pass. PASS."
Three passes, and the draft that reaches you already cleared your own checklist. You did zero editing to get there. Your job starts at "is this actually true and worth publishing," which is the judgment a model can't do for you. For the broader workflow this slots into, see how to create content with AI.
Two paths, depending on how technical you want to get. The no-code path is the prompt block above: keep it in a notes file, paste it into a fresh chat whenever you write, swap the brackets. That alone raises your floor on every piece. It costs nothing and works in any chat model today.
The engineer path turns the loop into a reusable skill so you never paste it again. In a CLI agent like Claude Code, you save the Writer + Critic instructions as a skill file, then invoke it on any draft, or wire it to /loop so it runs the cycle automatically. This assumes you're comfortable with files and a terminal. That's the honest line: the most automated version lives in a CLI agent, not a chat box. If that's where you want to go, the full method is in how to turn AI prompts into reusable skills.
One security note for the engineer path. There's a tempting pattern (Van Horn's "Agent Cookie" is the well-known example) where you sync live browser auth to a second always-on machine so a headless agent stays logged in and can post for you. State this plainly: that machine holds already-authenticated sessions to everything you're logged into. If it's compromised, or the agent gets prompt-injected, an attacker inherits those live sessions with no credential-theft step. The encryption protects the transfer, not the standing unattended access. Real convenience, real blast radius. Gate it hard, and never point an unattended agent at publishing or anything that moves money.
The loop raises the floor, it doesn't replace your judgment. A self-correcting AI content draft is still an AI draft. The Critic catches what's on the checklist; it can't catch a claim that's plausible but false, a take that's on-brand but wrong for this moment, or a piece that's technically clean but boring. Those are yours.
So keep a human on the commit step. Whether you run the no-code chat version or a CLI skill, nothing publishes, sends, or posts without you approving it. The loop is your first reader, not your last. It hands you a stronger starting point and saves you the mechanical edits. The decision to ship stays a human one, every time.
Yes, and that's the recommended starting point. Paste the prompt block above into ChatGPT, Claude, or Gemini, fill in the brackets, and the model plays both roles and runs the loop inside one conversation. You don't need any code, plugins, or a terminal. The no-code version captures most of the value.
Cap it at three to four rounds. After that you hit diminishing returns and risk the model over-editing good lines into mush. The prompt sets a four-round limit and stops early the moment the Critic returns PASS. If it never passes in four rounds, that's a signal your brand rules conflict or the asset brief is unclear.
Because the Writer can only act on something specific. "Make the hook stronger" gives the Writer nothing to grab. "Line 1 fails Hook Strength, scored 5, rewrite to lead with the cost the reader pays today" tells it exactly what to change and why. Named fixes tied to a numbered rule are what turn a vague rewrite into a real correction.
It removes the obvious tells if you list them as a rule. The checklist bans the giveaway phrases, and the Critic fails any draft that uses them, so they get rewritten before you see them. It won't give you a voice you haven't defined, though. The more specific your Voice line and on-voice rule, the closer the output lands.
It's one specific application of them. The hub defines the general pattern: set a goal and guardrails, let the model act, observe, decide, and repeat until a stop condition. The Writer + Critic loop is that pattern aimed at one job, drafting, where the "observe" step is a Critic scoring the work and the stop condition is "passes the checklist."
Start by running the prompt block on your next post and watching it argue with itself. Then make the checklist yours: cut the rules that don't fit, add the ones your brand lives by, and tighten the Voice line until the output sounds like you. That's where the real lift comes from.
If you want feedback on your brand-rules checklist or want to see how other operators are wiring these loops into real publishing workflows, come share it in the Asset Academy community: join us in Skool. Bring your draft and your checklist, and we'll pressure-test both.
Inside the Asset Academy community we build the copy, funnels, and offers together, with the prompts and the feedback. $96/mo, or save with annual.
Join the community →The community where we build the copy, funnels, and offers together, with the prompts and live feedback.
Join the Community →