Cindy Zhu.
Free guides
Power-user Claude

Build a loop in Claude so it checks its own work

Hey, it's Cindy ๐ŸŒฑ A loop hands the checking back. You set a goal, Claude grades itself against it, rewrites whatever falls short, and only stops once it passes.
btw the waitlist for AI System Club is now open! If you're keen on using AI to automate your content, video editing, job search, business or build AI agents, feel free to sign up (only if you want to hehe). Ps. the waitlist gets first dibs:)
๐Ÿ’ก Not a niche trick. Boris Cherny, who created Claude Code at Anthropic, works this way himself: "I don't prompt Claude anymore. I have loops running that prompt Claude and figuring out what to do. My job is to write loops" (quoted in Addy Osmani's loop engineering essay, June 2026, and covered by The New Stack). His loops do the prompting. He builds the loops.
the difference

Prompt vs loop

A prompt finishes at the reply

It's done as soon as an answer exists, whether or not the answer is any good. Catching what's wrong is your job, and so is asking again. The finish line is "Claude said something."

A loop finishes at the goal

You add a goal, and the goal decides when Claude is finished, not the first draft. It grades itself, rewrites whatever falls short, and runs the check again until every item passes.


the anatomy

What a loop actually needs

A loop is three things stacked on a normal request. Miss the middle one and it quietly collapses back into a prompt.

  1. ๐Ÿ› ๏ธ A task. The thing to do, same as always. "Write a one-page brief on X."
  2. ๐ŸŽฏ A measurable goal. The bar it has to clear, written so Claude can mark itself against it: numbers, a checklist, a pass or fail test. This is the part that turns a prompt into a loop.
  3. โ™ป๏ธ A stop condition. "Keep checking your work against the goal, fix what fails, and only stop when every item passes." That instruction is what keeps it going instead of handing you the first draft.

copy this

The loop template

This is the one from the reel. Fill in the task and the goal checklist, and Claude marks itself and rewrites until it passes:

๐ŸŽฏ the self-checking loop
TASK: [what you want, e.g. "write a one-page brief on the state of AI video tools in 2026"]

GOAL (you are not done until every item passes, and you must grade yourself against this):
- [ ] Every claim has at least 3 real source links.
- [ ] You opened each link and confirmed it actually backs the claim (no dead pages, no links that say something different).
- [ ] No claim is left unsupported or hand-waved.
- [ ] It fits on one page.
- [ ] [add any other measurable check you care about]

HOW TO WORK:
1. Do the task.
2. Grade your own output against every item in GOAL. Show me the checklist with pass or fail next to each item.
3. For anything that failed, fix it and re-grade.
4. Repeat until every item passes.
5. Only then give me the final version, with the passing checklist at the top.

Do not stop just because you produced something. Stop when it meets the goal.

In the brief example, the step that earns the whole setup is this: Claude opens every one of those links before it's allowed to stop, and rewrites the claims whose sources don't hold up. That's it catching the thing you'd otherwise have to catch at midnight.


the one mistake

Give it numbers, not vibes

The whole thing lives or dies on the goal. Claude can't grade what it can't measure, so a fuzzy goal leaves it nothing to mark against and you're back to a plain prompt with extra words.

โŒ Vague goal "Make it good." "Make it thorough." Nothing to mark against, so it stops at the first draft and calls that done.
โœ… Measurable goal "Every claim has 3 real links." "Under 300 words." "Passes all 5 checks below." Now there's a clear pass or fail, so the loop can actually run.
๐Ÿ“Œ The trap: "make it good" feels like a goal and isn't one. If you couldn't tick it off a checklist, neither can Claude. Write the goal as something a stranger could mark right or wrong without asking you what you meant.

go further

Run it hands-free with /goal

The template above works in any Claude chat, and that's the path most people need. If you use Claude Code, there's a native command that holds the loop open for you: /goal sets a condition and Claude "keeps working across turns until the condition is met or judged impossible" (Claude Code commands docs). Same rule applies, the condition has to be measurable.

  1. ๐ŸŽฏ Set the goal first. Type /goal followed by the condition, for example /goal every claim in the brief has 3 links I can open, and you have opened each one. Claude now has a bar to clear rather than a reply to produce.
  2. ๐Ÿ› ๏ธ Then give it the task. Ask for the work as normal. It keeps iterating across turns instead of stopping at its first attempt.
  3. โ™ป๏ธ Clear it when you're done. /goal clear removes the active goal, so the next thing you ask isn't still being measured against the last job.
๐ŸŒฑ Start in a normal chat with the template. Everything you learn about writing a measurable goal is exactly what /goal needs later, so none of it goes to waste.
the waitlist is now open

AI System Club is launching soon

Build AI systems with me through recorded lessons you can follow at your own pace. Join the waitlist for first access and the founding price.

btw this list gets first dibs
the moment doors open :)