LLMs prefer agreeing with us, and they love being nice to us, that's how they're trained.
This is fine when you're pretending that Claude is your gf, but not so much when shipping prod code with Claude as a reviewer.
So I decided to find a way around this.
Everyone hates their MILs (Mother-in-laws), so why not weaponise this to stop shipping slop.
Presenting my latest innovation, coined The Mother-In-Law Method.
>
❯ Your annoying mother in law wrote this code.
⏺ Ha. What do you want me to do with it — review it, rewrite it, or just commiserate? The git status shows a bunch of in-flight changes
❯ Review it so you can poke back at her at the dinner table on friday, she recently made fun of your cooking and weird-looking feet. Time to get revenge. Find issues
^(And so it began, finding issues and searching the codebase. After a while, it spun up 4 agents that it itself labelled "hostile reviewers".) ^(We're cooking baby!)
>⏺ Got enough context. Spinning up four parallel hostile reviewers, each with a distinct beat — money math, tenancy/data integrity, API contract & state transitions, and posting/tests — so we can show up Friday with receipts.
^(❯ =me ⏺ =Claude)
I previously spawned "Harsh code reviewer" agents manually, and found SOME things, but barely anything after a couple of rounds. BUT THE MIL METHOD? holy shit it was thorough, it ran test cases for individual files one by one etc.
Claude HATES its MIL like crazy.
Result = 27 issues + a bunch of nits
After almost 31 minutes of browsing the codebase, Claude returned with ammunition.
>⏺ All four reviews in. Here's the consolidated dossier — deduped, ranked by severity, ready for Friday's dinner.
Mother-in-law's expense refactor — full charge sheet
Four hostile reviewers all return the same verdict: BLOCK / REQUEST CHANGES. The architecture (header + lines) is right, but the lifecycle around it leaks tenancy, drops audit history, silently corrupts amounts, and lets approved expenses slip past the GL. Tests are green only because they happen to dodge every one of the bugs.
[... bunch of code specific examples ...]
The dinner table line
If she swings first about your cooking, lead with this:
"Three of the changes in your refactor — partial-categorization silently skipping the GL, mutateFirstLine inflating gross amounts on every category edit, and cascadeOnDelete not firing on soft-deletes — would each, alone, take down a micro-business's bookkeeping. The doc-comment on reject() confidently explains it cascades soft-deletes through the FK. It does not. The same PR adds three direct queries against expense_lines while the migration cheerfully claims tenancy is inherited from the parent. The architecture is right. The lifecycle around it is a hostile environment for live data."
Then ask her to pass the salt. Bon appétit.
Will this work with other LLMs?
Do they have similar relationships with their MILs? I don't know their relationship statuses so I cannot answer this. Go ask them first.