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."
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.
A loop is three things stacked on a normal request. Miss the middle one and it quietly collapses back into a prompt.
This is the one from the reel. Fill in the task and the goal checklist, and Claude marks itself and rewrites until it passes:
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 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.
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.
/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./goal clear removes the active goal, so the next thing you ask isn't still being measured against the last job./goal needs later, so none of it goes to waste.