Egor Urvanov

Approaches to working with a harnessThe answer loop and review that fixes the original request

What to do when an answer misses: three paths and a repeated loop. How review finds gaps, why they go into the original request and the pipeline runs again. Based on Anthropic, OpenAI and Google guides.

· 4 min · · Prompts and review

Answer missed
Answeroff the taskOne of three pathsrefine, redo, askNew answerchecked again
Review found a gap
Request v1the original taskReviewtwo gapsRequest v2and the whole pipeline again

Both approaches work in any harness: a chat, Claude Code, Codex or Cursor.

If the answer misses

If the answer misses there are three paths: the model understood the task — refine in the same chat; it misunderstood or made facts up — rewrite the request with the missing data and permission to say “I don’t know”, and send it in a new chat; it is unclear what is needed — first ask for three questions and build a six-part prompt from the answers. Each path gives a new answer; if it misses again, the loop repeatsAnswermissedtask understoodRefine in the same chat“shorter”, “softer tone”same contextmisunderstoodor made facts upRewrite the request+ data, “I don’t know” okNew chatneeds unclearFirst, 3 questionsquestions → your answersPrompt · 6 partsNewanswerFits↺ missed again — next roundAnswer missed1 · task understoodRefine in the same chat“shorter”, “softer tone”New answer2 · misread or made upRewrite the request+ data, “I don’t know” okNew chatNew answer3 · needs unclearFirst, 3 questionsquestions → your answersPrompt · 6 partsNew answerFits↺ missed again — next round
Path 3: three questions and a new request
Step 1
[task description]
Before doing the task, ask me 3 questions whose answers would improve the result the most. Do not start the work until I answer.
Step 3
Build a final prompt from the task and my answers: role, who and why, data, example, format, question at the end. Output only the prompt text.
Takeaway
In this exampleThree situations and one action for each: refine in the same chat, redo the prompt, or get questions from the model first.
In generalRefining keeps the context already given and fits when the task was understood. If the task was misread, redoing the prompt is faster. If the model made facts up, give it the needed data in the new request and allow it to say “I don’t know”. The new answer is checked the same way, and the loop repeats until it fits. Questions from the model help when it is unclear what context is needed: ambiguity gives the model room to misinterpret, and when intent is unclear, models ask for clarification more often.
Next stepFor a new task where you are unsure of the context, start by asking for three questions. Send the final prompt built from the answers as a new request in a new chat.

Answer review: fix the original request

The “rewrite the request” path as an example: the review found gaps, the original request lost what was wrong and gained what was missing, and everything ran again.

First run: the request limits input to Russian numbers, agent, tests pass, review finds two gaps. The limit is removed from the original request, two cases are added, and the whole pipeline runs again: agent, tests and review, all covered.run 1Request v1“Normalise phones”Russian numbers onlyAgentTestsReview2 gapsrun 2 · the whole pipeline againRequest v2“Normalise phones”− Russian numbers only+ prefix without “+”+ empty stringAgentTestsReviewall coveredfix the original requestrun 1run 2Request v1“Normalise phones”Russian numbers onlyAgentTestsReview2 gapsRequest v2“Normalise phones”− Russian numbers only+ prefix without “+”+ empty stringAgentTestsReviewall covered↺ fix the original request
Takeaway
In this exampleThe review found two cases that were not in the task: an international prefix without a plus and an empty string. The needless “Russian numbers only” limit was removed from the original request, the two cases were added, and the whole pipeline ran again.
In generalA gap the review finds goes into the original request, and the cycle starts over: the agent writes the code again, tests and review check the new cases, and the clarification stays in the task for future runs. A separate review pass with its own instruction is described in Google’s prompting guide.
Next stepWhen the review finds something, add it to the original request and rerun the whole cycle: change, tests, review.
Next step · HDDHarness-Driven DevelopmentHow to move a gap that keeps coming back from the request into the harness rules

Further reading

Techniques follow the official Anthropic, OpenAI and Google guides; the source is behind the icon next to each claim. Quotes from Google’s guide are paraphrased.
  • AI
  • harness
  • prompts
  • review
© 2026 Egor Urvanov