← Swink AgentShore Tech
Anti-confirmation bias

Claude doesn't grade Claude

Code review runs on a different framework than the author. Not by convention. By architectural invariant.

The failure mode

When an LLM Agent reviews its own output, the failure looks exactly like success. The same model that produced the PR is asked whether the PR is good, and the same biases that shaped the code shape the review. There's no contradiction, no missed assumption, no second opinion. Just a confirmatory loop that gets faster the more it's run.

This compounds where it hurts most: at merge. The cost of a bad merge isn't bounded by the cost of a bad review. It's bounded by everything downstream that depends on the merged code being correct. By the time the bias shows up in production, the trail back to the review is cold.

Plenty of anti-slop prompting in the play templates, too. But cross-framework review is what catches what the prompts miss.

The architectural rule

Swink AgentShore enforces two layers of separation, in the executor and not the prompt:

What this looks like at runtime

Author
claude-sonnet-4.6
Picked up the issue, wrote the implementation, opened the PR. Signs commits with its own SSH key.
Reviewer
codex-medium
Different framework, different identity, different prompt template. Reviews against an explicit checklist, not "does this look right".

The policy can't route around it. The Code Review play has a hard precondition: reviewer.identity != author.identity — and because each agent framework runs under its own GitHub identity, a different identity means a different framework. If no eligible reviewer is available right now, the play is masked. The policy picks something else, or instantiates the right LLM Agent first.

Why this stays even on human override

Most autonomy gates can be overridden by a human. The anti-confirmation rule cannot. The reasoning is unglamorous: humans are worse at catching confirmation bias under time pressure, and "just this once" is the most common shape of an incident postmortem.

What it doesn't claim to fix

Cross-framework review catches confirmation bias. It does not catch:

The principle is narrower than "review fixes everything" and more useful than "reviewers are mostly redundant": it fixes the specific failure mode where the author and reviewer share priors.