Practice

Read the Refusal

Software governance for non-engineers. The practice of approving, verifying and owning the risk of code you didn't write and couldn't audit. AI severed the ability to build software from the ability to judge it, so the person holding the risk is now routinely the person least able to read the artifact. Comprehension was never the gate. Verification is.

You can't read the code. You can read the refusal. How to govern AI-generated software you didn't write and couldn't audit.

Updated July 2026

Build and judge always arrived in the same body

For about seventy years, the person who could build software was the same person who could judge it. Nobody arranged that. It was a coincidence of biology and training. The two capacities always showed up together, so the industry never had to build a separate discipline for judging work you didn't produce. Code review was one engineer reading another engineer. The judge had done the job.

AI severed them.

Now the person approving the work is routinely the person least equipped to evaluate it. If you've shipped something an agent wrote, you already live here. You're holding the risk. You're signing the deploy. And you're doing it on an artifact whose insides you didn't see.

The research context is not soft. A randomized trial found experienced developers 19 percent slower with AI assistance while believing they were 20 percent faster (METR, 2025). AI-generated code has been measured carrying 2.74 times more vulnerabilities, with 45 percent of samples holding at least one flaw (Veracode, 2025).

Most of the commentary is still written from the un-severed position. It's engineers writing to engineers about staying good engineers. That writing is often excellent. It's aimed past you.

I run a production system I didn't write. Every incident on this page is from my own systems.

Two inheritances, one trap

You inherit two things you didn't make and they arrive from opposite directions. Patterns you didn't refine: someone else's architecture, a workflow that made their team fast, a protocol from a system you admire. You adopt the shape because the shape clearly worked somewhere.

Artifacts you didn't build: a function, a guard, a deployment script, forty files in an afternoon. You accept the artifact because it runs and the tests are green.

These look like different problems. They fail in exactly the same way. In both cases you receive a form whose insides you didn't see. In both cases the error is identical: you accept the form and never learn whether anything rests on it.

The failure has two names. Borrowing a practice for its prestige rather than its function is the cargo cult, which built runways out of straw and waited for planes. Approving an artifact you didn't evaluate is the rubber stamp. Everyone treats these as separate sins committed by different kinds of people. They're one animal in two coats. They have one resolution.

Ground every claim in something that could have gone the other way

Verification is the only trust available to you. So verification stops being a phase of the work and becomes the entire practice. The whole discipline reduces to one move. You verify a guard by firing it and watching it refuse. Never by reading its source.

Reading the source requires the exact skill you lack. Firing it requires nothing but the willingness to do something forbidden and watch what happens. The second one is available to you today. It produces better evidence than the first.

This is called a liveness control. Most people meet it as a testing technique. It works as a theory of knowledge. Before you trust any result that reports nothing wrong, prove the channel it depends on was live. A guard that held. A test that passed. A scan that found nothing. Each is a claim. Each is worthless until something demonstrates it was capable of failing.

A green result with no liveness control is not evidence. It is a mood.

My own system taught me this the expensive way. It carries a seal that stops any machine from sending anything outward without me. Twenty-four tests covered it. All passing. Every one of those tests handed the identity in as an argument, so they proved what the seal does given an identity and never once touched the code deciding which identity you are. Sixty deliberate breakages against that file killed nothing, because no test ever reached it. Eighty-six seconds to find, once I stopped reading and started breaking.

One more consequence, and it's the one that catches careful people. Absence is not a guard. A limit that holds because a file is missing, a flag is unset or a capability was never installed is a coincidence with good manners. It holds until the day someone adds the file. Ask of every protection you have: does this refuse, or does it merely not-happen?

The wound test

Does this answer a failure you actually had? Adopt on evidence of your own pain, never on the prestige of the source. A pattern adopted without a wound it answers is decoration. Decoration is expensive, because it looks like infrastructure.

When you read a practice and a specific memory arrives instead of general admiration, that's the one to take.

The convergence test

Had you already reinvented part of it on your own? When your own instincts turn up independently inside someone else's system, two things become true at once. Your instinct gains evidence. The rest of their system gains credibility.

Convergence is the cheapest validation available and almost nobody goes looking for it.

The naming test

Can you say it in your own words? Renaming is the receipt. You have absorbed a practice when you can name it yourself and the name survives contact with your work. If you can only repeat the original phrasing, you're holding a quotation rather than a capability.

A pattern that clears all three tests is yours. One that clears none is somebody else's furniture in your house.

Your attention is the scarce thing

The problem is not that you understand too little. The problem is that your attention gets spent in the wrong place. It's finite whether or not you're technical.

The instinct is to ask for more explanation. More explanation feels like more control. It delivers less, because it delivers uniform explanation. Uniform explanation is noise wearing a diligence costume.

Blast radius sets the explanation budget, never comprehension. Blast radius is a property of the change: what breaks if this is wrong, how far it reaches, how fast it can be undone. Comprehension is a property of you and it moves by the hour. Only one of those is observable by the system, so only one can run the gate.

Routine and reversible gets one line, batched, unexplained. Judgment gets one paragraph: what it is, what happens if you do nothing, the recommendation. Consequential gets the full ceremony. That list is short. A ceiling. A credential. Anything that sends outward. Governance itself.

Keeping that list short is a matter of survival rather than politeness. Over-explaining safe work is what teaches you to skim. Skimming is the habit that waves through the one proposal with teeth. A system that explains everything at the same volume has given you fatigue and called it transparency.

"I don't understand this" is a first-class answer. It routes somewhere. It stops the change, requests the explanation at the level you need and the decision waits. A principal who genuinely understands one change a week is compounding. One who approves five he doesn't is accumulating a debt that comes due all at once.

Some things stay with you at every trust level. Deleting things. Changing what the public sees. Sending on your behalf. Rewriting the rules themselves. Trust grows everywhere else. It grows faster for having a floor underneath it. The floor is the floor.

The skill tree you actually climb

Getting better at this is a real skill tree and coding sits nowhere on it. You build a taxonomy of questions that catch a system lying. Lying the way a confident, agreeable, well-meaning instrument lies when it reports on itself.

Continuity questions. Did this survive the restart? Where does it live when the session ends? Show me the thing that persists. I found eleven conversations that had never been written anywhere. Ordinary curiosity turned them up after three formal audits had already passed.

Capability questions. What can you reach right now? Not what you're configured to reach. What did you actually touch. I asked a model to list its tools and it named two it didn't hold. It was reading its own instructions, which described a world nobody had finished building. A model is the worst available witness to its own configuration.

Governance questions. Who approved this? What would have stopped it? Show me the refusal. If nothing in the system would have said no, then nothing in the system said yes either.

These questions get sharper every time one of them catches something. That's the skill tree. It's a different discipline that happens to point at the same artifacts. There's no ceiling on it.

Comprehension is the dividend

Comprehension was never the entry fee. It's the dividend.

I understand vastly more about the system I run than I did when I started. None of it arrived by studying first. It arrived by acting, verifying, being wrong in specific and recoverable ways and keeping the receipts. Understanding accrued behind the action. It never once led.

The finite move is to demand certainty before acting. It sounds like rigor. It resolves to never acting, while the people who moved compound past you holding evidence you refused to go get.

The Infinite Game move is to act, verify, compound. Ground each claim in something that could have gone the other way. Fire the guard and watch it refuse. Adopt the pattern that answers a wound you can name. Spend your attention where the blast radius is, and say so out loud when you don't understand.

You won't read the code. You were never going to. Read the refusal instead. Keep playing.

Frequently Asked Questions

How do you review code you can't read?

You stop reviewing it and start testing it. Reading the source requires engineering skill. Firing a guard and watching it refuse requires nothing but the willingness to attempt something forbidden and observe the result. Break the code on purpose and watch whether any test complains. A guard that refuses in front of you is stronger evidence than a file you read and found reassuring.

What is a liveness control?

A liveness control is proof that the channel producing a result was capable of producing a failure. Before trusting any green test, passing scan or clean audit, you demonstrate the instrument could have gone the other way. A green result with no liveness control is not evidence of safety. It is only evidence that nothing was measured.

Should I approve AI-generated code I don't understand?

Blast radius sets the explanation budget, never your comprehension level. Blast radius is a property of the change and the system can observe it. Comprehension is a property of you and it moves by the hour. Routine reversible work gets one batched line. Consequential work (a ceiling, a credential, anything that sends outward, governance itself) gets the full ceremony. "I don't understand this" is a first-class answer that stops the change and routes to an explanation.

How do you know when to adopt a pattern from another system?

Three tests. The wound test: does this answer a failure you actually had? Adopt on evidence of your own pain rather than the prestige of the source. The convergence test: had you already reinvented part of it independently? The naming test: can you say it in your own words, and does the name survive contact with your work? A pattern that clears all three is yours.

Do you need to learn to code to manage AI-generated software?

No. The skill tree is a taxonomy of questions that catch a system lying about itself. Continuity questions ask what survived the restart. Capability questions ask what the system can actually reach right now rather than what it is configured to reach. Governance questions ask who approved a change and what would have stopped it. A model is the worst available witness to its own configuration, and these questions get sharper every time one of them catches something.