This is article 2 in a series about building PlannerCritic, an open-source engine where one LLM writes a plan and a second LLM reviews it. Article 1 is here — it covers the 157-goal field test and what it found. This one is about a specific bug that taught me something about LLM judgment.

The critic was supposed to catch unsafe plans. Instead it blocked plans for being incomplete. The fix was a frozenset.

What Happened

I gave the critic this system prompt:

You are an adversarial plan reviewer.