Critic-refinement loops regress without best-ever tracking and shared memory
A generate-review-rewrite loop ran its full round limit and ended worse than its midpoint. Three bugs that all look correct in the script: the exit condition was a boolean satisfied flag from a reviewer prompted to grade harshly (effectively unreachable, so the loop always ran to exhaustion); each rewrite spawned a fresh agent given only the current round critique, so it reintroduced ideas rejected two rounds earlier; and the loop returned the last draft rather than the best-scoring one, letting a regressing final round become the output. Subtler: reviewers kept saying the whole approach was wrong, but the rewriter was only asked to rewrite, so it edited sentences while the objection was structural. Fix with a numeric threshold, a full ledger of prior rejections passed into every rewrite, separate best-ever tracking, and a reviewer field that classifies the flaw as local or structural.