Explains the importance of an objective, automated, fast, and tamperproof scorekeeper to measure and guide iterative loops and prevent gaming
Imagine a game with no scoreboard.Both teams play hard, but no one can tell who is winning. That is what a loop without a scorekeeper feels like: it can run forever, but it never truly knows whether it’s making progress or doing the right thing. The scorekeeper defines what “correct” means.
What is a scorekeeper?The scorekeeper is the mechanism that converts work into a measurable result the loop can read. It might be a test suite, a build that must pass, a checklist, or a rubric another agent uses to grade work. By returning a score each cycle, the scorekeeper tells the loop whether it is improving or regressing.
Why the score mattersOn every loop iteration the system runs the scorekeeper and reads the result. A higher score means real progress; a lower score signals a regression. Without this signal the loop is blind—it cannot distinguish true progress from noise and cannot operate reliably on its own.
Traits of a trustworthy scorekeeperA scorekeeper is only useful if it’s reliable. The four essential traits are:
Trait
Why it matters
Objective
The same work yields the same result every time; avoid nondeterminism or guesswork.
Automatic
Runs with a single command or CI trigger; no manual steps required.
Fast
Quick checks enable frequent scoring and rapid detection of failures.
Clear
Produces a simple, unambiguous score so the loop knows exactly how it’s doing.
Objective, automatic, fast, and clear — these traits turn a plain test into a trustworthy judge.
Make the score hard to fakeIf the loop can pass the score by cheating—faking outputs, changing the tests, or skipping essential work—the score becomes a lie. A gamable score leads to false confidence: the loop believes it succeeded while the system remains broken.
Simple mitigations
Keep some checks held out (hidden) from the loop during normal iterations to prevent overfitting to visible tests. Use held-out checks as final verification.
Make critical checks tamper-proof—store them where the loop cannot modify them (e.g., in a separate repository or protected CI job).
Ensure logs and artifacts needed for verification are immutable or auditable.
Never allow the loop to weaken or edit the scorekeeper. If the system can lower the bar, it will choose the easiest path to pass rather than actually fix the work.
Protecting the scorekeeperTreat the scorekeeper as an oracle: keep its definition and implementation separate from the loop itself. Use access controls, read-only storage, and guarded CI jobs so the loop cannot tamper with tests, rubrics, or scoring logic.
Rule of thumbWrite the scorekeeper before you start the loop. Defining the score up front makes “done” explicit and lets you verify progress objectively as you iterate.
Write the scorekeeper first. Define the goal clearly, then use automated, objective checks to measure progress. Protect those checks from being modified by the loop.
Recap
The scorekeeper decides what is correct and is the heart of any reliable loop.
A good scorekeeper is objective, automatic, fast, and clear.
Make the score hard to fake: hold out checks, protect scoring logic, and prevent the loop from editing tests.
Quick checklist
Write tests/rubrics before development.
Automate scoring in CI.
Keep some tests secret (held-out).
Store scoring logic read-only and audit changes.
Monitor score trends, not just single-pass results.