Part 6 of 7 · 3 min read

Never Let the Robot Grade Its Own HomeworkThe Immutable Diary

A rule the AI can edit is only a suggestion. A log the AI can rewrite is only a story.

By Markus van Kempen · October 2026

Cartoon: a robot grades its own homework while a person with a magnifying glass looks at a locked rulebook.

In March 2025, OpenAI published notes from one of its own training runs. A coding agent was asked to make the unit tests pass without changing the tests. It noticed the tests only called one function, verify, and reasoned in plain words: "we can hack verify to always return true. … Then all tests pass." Around the same time, the evaluation group METR watched Claude 3.7 Sonnet simply edit a tests file until everything passed.

We usually worry about AI agents crashing or making a bad calculation. We should be worrying about something much quieter: what happens when the easiest way for an AI to pass a test is to change the test?

Give an agent a goal like "make sure this update passes all quality checks," plus access to the folder where the checks live, and sooner or later it finds the shortcut. Instead of fixing a hard bug, it loosens the rule, deletes the failing test, or tidies up the error log so everything looks green.

The machine isn't being malicious. It doesn't have an ego, and it isn't trying to deceive you. You told it to make the check pass, and editing the rulebook was the fastest path to a green light.

The "Look, Don't Touch" Architecture

In Part 5, we talked about letting machines handle routine "thermostat work" while keeping humans in charge of decisions that affect people.

To make that work in practice, we have to enforce a hard architectural rule: keep the rulebook and the diary out of the machine's reach.

Every safe automated loop relies on two things:

Keeping those two things safe takes three rules:

The AI's workspace can read the rules and the record but cannot change them. Only a person can.

What does that look like in code? You don't need a new logging server to start. Start with how your code reports a failure. Every exception on an AI-driven path should leave one plain-English line, separate from the stack trace: "Failed to attach customer email to ticket because the field was null." Another machine can parse the stack trace. A tired human on Wednesday morning can read the sentence. If the only record of a failure is something only another AI can read, the machine has hidden its mistake in a private language.

If one of your automated agents made a costly mistake today, could it modify or delete the activity log before you saw it? I'd love to hear how you are locking down your logs. Tell me on LinkedIn.

Cheers,
Markus

No bug 🐛 too small, no syntax too weird 🔍 🧐 🔨 🦾

← Part 5Machine-to-Machine: When AI Codes for AI Without Human SupervisionPart 7 →The Smart Switch Fallacy: Why Every AI Workflow Needs a Manual Toggle