Evaluator-Optimizer Refinement Loop

One model generates, another grades against a rubric, and the loop repeats until the rubric passes or a limit is hit.

reflectioncritiquequality
Setup time30-60 minutes (estimate)
Estimated costEach iteration is one generation plus one evaluation call; cap iterations.
ToolsNo specific tool (works with any chat model API)
VerificationNot yet independently verified

Useful when quality criteria are clear and checkable (translations, code that must pass tests, copy with constraints).

Steps

  1. Generator produces a draft.
  2. Evaluator scores it against an explicit rubric and returns structured feedback.
  3. If pass is false, feed the feedback to the generator and regenerate.
  4. Stop at pass: true or after N rounds; return the best-scoring draft.

Evaluator prompt

You are a strict reviewer. Grade the DRAFT against each criterion.
Return JSON only:
{"scores":{"accuracy":0-5,"constraints":0-5,"clarity":0-5},
 "pass": true|false,
 "fixes": ["specific, actionable change", ...]}
pass is true only if every score >= 4.
CRITERIA: {{rubric}}
DRAFT: {{draft}}

Config

max_rounds: 3
keep: best_score
prefer_programmatic_checks: true   # run tests/linters before the LLM judge

Failure modes

Markdown version: /blueprints/evaluator-optimizer.md

Want a deeper build of this?

Vote for an extended, fully tested version (more tools, a full workflow file). Votes decide what we build next.

– votes

Get one fully built blueprint a week

A weekly email: one blueprint with config, cost, setup time and failure modes, plus a vote on what we build next.

Related blueprints