Chapter 18 of 18

The proof

What the evidence really says, what to claim, and how to show it to someone who is paid to doubt you.

Here is the sentence this course has been working towards: my agents write the code, I know what is going on, I have the systems that make sure what comes out is good, and I can show you. It is a fair thing to want to say in a job interview. Plenty of people say something close to it, which is exactly why a sceptical engineer won't take it on trust.

This chapter has two halves. The first is what the evidence really says about building with agents, and how to read a claim about it: who measured, against what, what they counted, and who paid. The best-known studies are easy to misquote, and misquoting one to someone who has read it can end the conversation. The honest summary isn't tidy. METR measured experienced developers going 19% slower in 2025 while they felt 20% faster, and its 2026 follow-up couldn't produce a reliable new number. So nobody gets to say "AI makes developers slower" or "AI makes developers faster" as settled fact.

The second half is what to claim and how to show it. Employers do say, in their own words, what they watch for in the room, and we quote them. No employer we could find says which portfolio artefact persuades them, so that part is our suggestion. It is labelled, and the reasoning is there for you to disagree with.

One thing has to be plain before you start. This site supports your claim only if you really did the work. Reading it doesn't count, and neither does passing its gates. They give you the words for what you did, and the words are worth nothing without it. If you say you have a ratchet and you don't, an interviewer will find out in two follow-up questions, and after that they won't believe the things that are true.

How strong is this evidence

Also called Evidence hierarchy

A rough ranking of how far a kind of study lets you believe its claim: randomised trials near the top, then comparisons over time, then surveys and benchmarks, then single stories. A ranking only makes sense for one question at a time.

An agent summarising research gives a survey and a trial the same confident sentence, so the ranking has to come from you. And the person across the table has heard all the loud numbers. You can't check every study, but you can find out what kind it is in a minute.

Say it to your agent

“You cited a study for that. Tell me what kind it is: randomised trial, comparison over time, survey, vendor benchmark or single story. Give me the sample size, the date of the tools it tested, and the sentence in the source. If you haven't opened the source, say so.”

Randomised trial

Also called RCT, Randomised controlled trial

A test where chance decides who or what gets the treatment, so the two groups differ only by luck and by the thing you are testing. That is what lets you say one thing caused another, and not just that they went together.

If you choose which tasks to give the agent, you will pick the ones you expect it to help with, and comparing times afterwards mostly measures your choice. It is why a before-and-after on your own work proves so little, and why a coin flip on your next ten tasks proves more.

Say it to your agent

“I want to know if using you on this kind of task is worth it. Make a table for my next 20 tasks. I write each task down first, then assign it with python3 -c "import random; print(random.choice(['agent', 'hand']))". Record minutes and whether it merged without rework. I don't get to swap after the flip.”

Confidence interval

A range around a result showing how far it could be from the truth just from the luck of what got sampled. Fewer samples, wider range. It covers bad luck only: a biased study can have a narrow interval around the wrong answer.

An agent doesn't give the same answer twice, so one or two good runs tell you very little. A prompt that passed 15 times out of 15 could still fail one run in five. This is a daily tool when agents do the work, and not only something for reading papers.

Say it to your agent

“You ran this prompt 3 times and it passed 3 times, which proves very little. Run it 30 times, each in a fresh session, count how many pass tests/holdout.test.ts, and give me the Wilson 95% interval. Don't call it reliable unless the low end is above 90%.”

Base rate

Also called Prevalence

How common something is before you test for it. When the thing is rare, even a good detector's alarms are mostly wrong, because the many good cases set off more false alarms than the few bad ones set off true ones.

Your gates and your reviewer agents are detectors. If one change in thirteen is broken, most refusals land on good work, and an agent told to satisfy them rewrites good code. The same sum applies to you in an interview: when nearly everyone uses AI, saying you do tells them almost nothing.

Say it to your agent

“Before we make this reviewer a blocking check, measure it. Run it over our last 50 merged pull requests, count how many it would have stopped, and mark each stop as a real problem or not, with the evidence. Tell me how many of its refusals were right.”

Those four ideas are enough to read the study an interviewer is most likely to bring up.

METR's studies

Studies by METR, a non-profit, timing experienced open-source developers on their own real tasks, with chance deciding whether AI was allowed. The 2025 one found them slower. The 2026 follow-up says it couldn't produce a reliable new number.

If you say you build with agents, this is the study they will ask about, and you can get it wrong in two directions. "AI makes developers slower" overstates a trial of 16 people on early-2025 tools. "METR now shows AI speeds you up" overstates a follow-up METR itself distrusts.

Say it to your agent

“Open metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/ and metr.org/blog/2026-02-24-uplift-update/. Draft two sentences I can say in an interview about what they do and don't show, with the sample, the date of the tools and the intervals. Mark any number you didn't read on those pages.”

Perception gap

The distance between how much a tool feels like it helps and how much it measurably does. It can be large, it can point the wrong way, and the person inside it can't see it from there.

An agent makes work feel easier. Waiting feels like resting, and a wall of new code feels like progress. So "it makes me faster" is no evidence, even when you say it in good faith, and a strong candidate knows that about their own impression.

Say it to your agent

“Don't tell me this was faster. Run gh pr list --state merged --limit 40 --json createdAt,mergedAt,additions,title and give me the median time from open to merge before and after the date I started using you for this work. Then say what that can't prove, since nothing was randomised.”

Speed is only one question. The other is what happens to the person doing the work.

Skill atrophy

Losing a skill, or never building it, because something else does the work for you. With agents, the worry is that you can ship code you can't explain or debug, and that you don't notice until the agent gets stuck and so do you.

Directing an agent well depends on the skill it might erode: you can only catch what you are able to read. You don't feel this happening, since the work still gets done. It comes up in interviews that take the agent away, which some do on purpose.

Say it to your agent

“Explain the approach and ask me what I'd do before you write anything. After you write it, quiz me on three things: why this line exists, what happens if this input is null, and where I'd look first if it failed. Don't give me the answers until I've tried.”

Trust surveys

Surveys asking developers how far they trust AI tools. The number that gets quoted depends mostly on how the question was asked and which answers someone decided to count as trust.

These numbers get used to argue that agent output is or isn't reliable. A survey can't show that. It tells you how people feel about the output, and it says nothing about how often the output is right. Only your own checks can tell you that.

Say it to your agent

“Don't write that trust in AI tripled. Quote the exact wording of each year's question from survey.stackoverflow.co/2025/ai and survey.stackoverflow.co/2026/, list which answers each headline counted, and tell me whether the two can be compared at all.”

DORA on AI

Google Cloud's DORA research on how software teams deliver. Its 2025 report, from a survey of nearly 5,000 technology professionals, calls AI an amplifier: it makes strong teams stronger and struggling teams worse.

It changes the question from "does AI work?" to "what is it amplifying?". An agent pointed at a repo with no tests and vague briefs gives you more of both, faster. It is also a good answer to anyone asking what you would watch once agents write most of the code.

Say it to your agent

“Read our last 30 deployments from CI history. Give me deployment frequency, lead time and change fail rate. Then look at git log and tell me which of DORA's AI capabilities we are weakest on, starting with small batches and version control practice, since those two you can check.”

Output isn't delivery

More code isn't more software shipped. Output is what gets produced: lines, commits, pull requests. Delivery is what reaches people and does its job. Agents can raise the first a long way while the second moves much less.

An agent can always produce more of anything you count, so counting what it produces rewards the wrong thing. If you tell an interviewer you opened twice as many pull requests, the next question is where they all went.

Say it to your agent

“Don't report how many pull requests you opened. Using gh, give me for each of the last 8 weeks: pull requests merged, median hours from open to merge, and how many were reverted or followed by a fix within 7 days. Then say what this can't show about value to users.”

Vendor studies

Research published by a company that sells something in the same area. It can be perfectly good work. You say who paid when you quote it, and you read what it measured with that in mind.

Agent tooling is full of these, and the label falls off as they get repeated. Many also score code from one shot with nothing around it, which isn't how you are working if you have a harness. So their numbers don't carry across, in either direction.

Say it to your agent

“For every number in this document, add who published it, whether they sell something related, and whether it came from one shot on their prompts or from a real workflow. Delete any number you can't trace to a page you opened.”

What nobody has measured

The questions with no good study behind them yet. For agent-written code the biggest is this: does it cause more production incidents? We found no primary, peer-reviewed measurement, and saying so is a stronger answer than filling the gap.

An agent asked for a statistic will find something that sounds like one. Stories about agents deleting databases are real, and they are stories, so they can't give you a rate. A number with no source is the easiest thing in an interview to catch.

Say it to your agent

“Search for a primary study measuring production incident rates from AI-written code. List what you searched and what you opened. If you find none, say "I found none" and stop. Don't stretch a nearby figure to fit, and don't cite a page you haven't read.”

Put it together and you have four questions you can ask of any number, in about a minute.

Reading a productivity claim

Four questions to ask of any number about AI and productivity, in this order: who measured it, what was it compared with, what did they count, and who paid. A claim that survives usually comes out smaller and more useful.

You will meet these numbers in interviews, in pitch decks, and from your own agent, which will repeat them cheerfully. Being able to take one apart calmly, in front of someone, is itself evidence that you know what you are doing.

Say it to your agent

“Someone claims agents made their team 40% more productive. Find the original source. Tell me who measured it, what the comparison was, what was counted and who paid. Where you can't find an answer, write "unknown". Don't infer one.”

Prediction or measurement

Also called Forecast

A measurement says what happened, to what, compared with what. A prediction says what will happen. Both can be worth hearing, and they need different treatment: you check a measurement, and with a prediction you ask what would show it right or wrong, and when.

A forecast from someone who knows the field sounds just like a finding, and it gets repeated as one. Sort it sentence by sentence: what could be tested today, what only later, and what no result could touch. Then you know what to do this week, whichever way it turns out.

Say it to your agent

“Someone says AI will rewrite all software and make it secure. Take this one service and test the small version: have an agent rewrite one module, then compare latency, scanner findings and failing scenarios before and after. Give me the numbers and what you could not measure. Don't tell me what it means for the industry.”

That is the evidence, and none of it says anything about you. From here on, it is about what you can say and what you can show for it.

The claim you can defend

A short paragraph you can say out loud in which every sentence points at something you can open: a file, a commit, a failing run. If a sentence has nothing behind it, you either drop it or go and do the work.

Saying you use agents is close to saying nothing, because nearly everyone does. What is rarer, and what employers describe wanting, is someone who can lead the agent and can show how they know the result is any good. The sentences only count if they are specific, and only if they are true of you.

Say it to your agent

“Here is my claim paragraph. For each sentence, open this repo and find the file, commit or CI run that supports it, and give me the link. If you can't find one, mark the sentence unsupported and don't soften it. I'll remove it or go and do the work.”

A repo worth showing

One public project small enough to read in ten minutes, where the process is visible as well as the result: the brief, the checks, the history, and what went wrong. This is our suggestion. We found no employer saying which artefact persuades them.

Anyone can now generate a plausible app in an afternoon, so an app shows little by itself. Our reasoning is that the process around it is harder to fake, and gives an interviewer something real to ask about. Size matters too: nobody reads your big project, and you can't defend every line of it.

Say it to your agent

“Audit this repo as a sceptical senior engineer with ten minutes. In order: does the README say what this does and what isn't done, does one command run it, is there a brief, what does AGENTS.md say, what does CI block, and do the tests fail when the code is wrong? List what you can't find. Don't add anything yet.”

A commit trail

A project's history read as evidence: what changed, in what order, and why. A good trail shows small steps with reasons, checks arriving after mistakes, and things being undone. One giant commit shows nothing.

An agent will write a lovely message for a bad commit, so the wording proves little. The shape is harder to fake: sizes, order, a revert, a check that appears the day after the bug. Say plainly which commits an agent wrote. Nobody minds that, and being caught hiding it is the end of the conversation.

Say it to your agent

“Keep this history honest. One change per commit, a message saying why, and a Co-Authored-By line when you wrote it. Don't squash failures out of the history. If a check caught you, say so in the fix commit. Then show me git log -30 --format='%h %s' --shortstat.”

AGENTS.md as evidence

Your instructions file read as a record of what has gone wrong. A line naming a real command, file or past mistake shows someone was paying attention. A line like "write clean code" shows nothing at all.

This is one of the few places where how you direct an agent is written down and dated. Its history shows rules arriving after failures, and it gives a sceptic something specific to ask: what happened to make you write this line? You either have a story, or you copied it.

Say it to your agent

“Go through AGENTS.md line by line. For each one, use git log -p AGENTS.md to find the commit that added it and the mistake behind it, and tell me whether a check now holds it. Mark any line with no reason and no check for deletion. Don't add anything.”

If you build one thing from this chapter, we would build this. It is the hardest to produce without really having done the work.

The log of past failures

Also called Ratchet log, Failure log

A running list of mistakes: what went wrong, what now prevents it, and proof that the check fails on the old code. It shows you noticed a failure, generalised it, and closed it off.

An agent can write you a convincing list of failures in a minute, so the entries are worthless by themselves. The proof is what counts. Run the check against the old code and it has to fail, and that is a thing someone can repeat in front of you.

Say it to your agent

“Add an entry to docs/failures.md: the date, what went wrong, the commit with the old code, and the check that now catches it. Then check out that old commit, run the check, and paste the failing output into the entry. If it passes on the old code, the check is wrong, so tell me.”

Decision records as evidence

A short dated note of a decision: what you chose, what you rejected, and why. As evidence, it shows a person made a call the agent couldn't make alone, and it lets someone ask you about it a year later.

An agent will happily produce options and has nothing riding on the outcome. Choosing between them is the job that stays yours. Be careful with these, though: an agent can write twenty backdated ones in a minute, and they fall apart the moment someone asks what you would do differently now.

Say it to your agent

“Write docs/adr/0004-queue-choice.md in Nygard's format: context, decision, status, consequences. List the two options I rejected and my reasons, in my words from this conversation. Date it today. If you don't know a reason, ask me, and don't invent one.”

Everything so far can be prepared at home. The rest happens with someone watching.

Reviewing live in an interview

Reading code you didn't write in front of someone, saying what you are looking for and what you aren't getting to. Going by what hiring teams write, they are watching your order and your honesty at least as much as what you find.

When an agent writes the code, reading is most of what is left of your job, so this is a fair test of it. Time is always short. Saying "I read the payment handler and the migration, and I did not get to the tests" is a better answer than having looked at everything at speed.

Say it to your agent

“Generate a 400-line pull request on this repo with three seeded defects: one in auth, one off-by-one, and one test that passes for the wrong reason. Don't tell me where. Give me 10 minutes, then score what I found, what order I read it in, and what I said I hadn't read.”

Debugging without the agent

Finding and fixing a bug yourself with the agent off: read the error, make a guess, test the guess, narrow it down. You don't have to be quick. You have to have a method, and be able to say what it is as you go.

Agents get stuck in loops, trying the same fix in new words. That is the moment a person is needed, and some interviews create it on purpose. If you have only ever watched an agent debug, you will feel this one, so practise it before someone is watching.

Say it to your agent

“Stop. You have tried the same fix twice, and a third try won't help. Write down what we know: the exact error, the last commit where it worked, your top two hypotheses, and the one command that tells them apart. Don't change any code. I'll run it myself.”

Explaining trade-offs

Saying what you chose, what you gave up for it, and when you would choose differently. If you can't name the cost of a decision, you probably didn't make it.

An agent will write a reasonable case for either side, so being able to recite one proves nothing. What it can't supply is the reason this was right for your project, and what would change your mind. Someone who only knows the upside has been told about the choice, and hasn't lived with it.

Say it to your agent

“Give me the strongest case against what I just decided: blocking merges on mutation score. Use what is in this repo and not general points. Then tell me what would have to be true for me to be wrong. Don't soften it, and don't finish by telling me I was right.”

Saying what you don't know

Saying plainly where your knowledge and your evidence stop. "I don't know, and here is how I would find out" is a complete answer. An absolute such as "always" or "fully tested" only needs one counter-example to sink you.

If you spend your days reading agent output, you can start to sound like it: fluent, sure of itself, and short of limits. A sceptic listens for that. Naming what your checks can't catch is also the fastest way to show you have really run them.

Say it to your agent

“Read this paragraph of mine for overclaims. Mark every absolute, every number with no source, and everything I state as general that I only saw once. Rewrite it with each limit attached, in under 80 words. Don't add anything I haven't told you.”

Employer AI policies

What a company says about using AI at work and in its hiring. They differ, often within one company: the same process may forbid AI in one round and expect it in the next. So you ask each time, and never assume.

If you work with agents all day, you can break a rule from pure habit. It matters on the job as well: what you may send to a model is a real boundary, and an agent will read whatever you point it at, including things that should never leave the building.

Say it to your agent

“Draft a two-line message to the recruiter asking which rounds allow AI tools, which tools, whether they want to see my screen, and how they would like AI use disclosed on the take-home. Nothing else. I'll send it myself.”

Take-homes in the agent era

Work you do in your own time for a hiring process. Agents can now finish many of them, so companies are banning AI on them, redesigning them, or moving to scoped builds and live follow-up. Expect to defend every line.

If an agent can pass a test, passing it shows little, so the result matters less and the conversation after it matters more. Read the rules first. Then keep your plan, your questions and your changes, because those show the part the agent didn't do.

Say it to your agent

“This is a take-home, and AI is allowed. Before any code, write PLAN.md and QUESTIONS.md: what I do first, what I defer, every gap in the spec, and what I am assuming. Then stop, and I'll decide. Keep a log of what you wrote and what I changed, so I can disclose it.”

Red flags interviewers look for

What interviewers report seeing when someone's claim to work with agents is hollow: no plan, permission checks off, a skimmed diff, stuck the moment the agent is stuck. A follow-up question or two is usually all it takes to find out.

These all look fine from the inside, which is what makes them dangerous. The code runs and the demo works. The flags only show when someone asks you to go one level down, and with agents it is possible to reach a finished product without ever having been one level down.

Say it to your agent

“Interview me as a sceptical senior engineer. Pick one claim from my README. Ask one question at a time and follow up twice on whatever I answer, asking to see the file. Don't help and don't reassure me. At the end, quote the exact moment my answer stopped being specific.”

The hard questions

The 57 questions a sceptical engineer could ask about how you build with agents, the same ones as the interview room. Only a few are asked verbatim by a source, and most are our own reasoning. The bench tells you which is which.

You find out what you really know by being asked, and an agent can ask you all day without getting bored. Do these out loud with the agent off. If an answer needs the agent, that is your next piece of work.

Say it to your agent

“Ask me this with no hints: "You have ten minutes and a 400-line agent-generated diff. How do you review it?" When I answer, ask me to show it on a real pull request in this repo. Then mark which parts of my answer I could back up and which I couldn't.”

Say it goes well. The claim then has to survive contact with someone else's codebase.

What to do in your first week

Learn the rules on AI and data. Read before you generate. Find out what blocks a merge. Ship something small and reviewed. Ask what failed last. These are the same habits as this course, on code you don't own yet.

An agent lets a new person change a lot before they understand anything, which is the fastest way to lose a team's trust. Your claim was that you know what is going on. In week one you don't yet, so say so, and make your changes small enough that someone can check them.

Say it to your agent

“Don't change anything. Read this repo and tell me how to run it, where the checks are, what blocks a merge, and which files change most (git log --format= --name-only | sort | uniq -c | sort -rn | head -20). Mark anything you guessed, and I'll ask the team about it.”

That is the end of the last chapter. There is one thing left, and it isn't on this site.

What you can now say

Only what you can point at. If you did the work, it comes out short: my agents write most of the code, here is how I brief them, here is what stops bad work, here is what still gets through, and here is how I find out.

Eighteen chapters gave you the words, and that is all reading can give. Each sentence below comes true when you have done the thing it describes, and not before. The agents will keep changing, and these numbers will date. Being able to show how you know is the part that should last.

Say it to your agent

“Here is my claim, and here is my repo. Ask me the two hardest follow-up questions the repo can't answer for me. Then I'm turning you off and answering them out loud.”

Do it for real

Reading gets you the words. This gets you the experience behind them, and something to show.

Write your claim and link every sentence

This is what the whole course has been for, and it is short. The discipline is in what you delete.

  1. Write five sentences saying how you build with agents, as you would say them to a sceptical engineer.
  2. After each sentence, add a link to the file, commit or CI run that backs it. Open each link to check it shows what you think it shows.
  3. For each sentence with no link, either delete it, or write down the work that would earn it.
  4. Add one sentence saying what your setup can't catch, and how you know.
  5. Read it aloud to someone. When they ask a follow-up you can't answer, add that to the list.

Done when: A short section in your repo's README where every sentence links to evidence, one sentence says what still gets through, and a list says what you haven't earned yet.

Run a small trial on yourself

You are the only person who can measure this about you, and doing it gives you a real answer to "how do you know you are not fooling yourself?", even when the result is that you can't tell.

  1. List your next 20 real tasks of a similar size. Write down each one before you start, along with your guess at how long it will take by hand.
  2. Flip a coin for each: agent or by hand. No swapping after the flip, and record any task you abandon, since dropping them is how trials go wrong.
  3. Record the minutes and whether it needed rework within a week. Before seeing the totals, write down how much faster you feel the agent made you.
  4. Compare the two groups, and compare that with your feeling. Take a median, and say how few tasks this is.
  5. Write one paragraph: what you found, what is wrong with it, and what you would need to know more.

Done when: A table of 20 randomised tasks, your written guess from before you saw the totals, and a paragraph that doesn't claim more than 20 tasks can show.

Be interviewed with the agent off

Every other drill can be done with an agent beside you. The real one can't, and it's much better to find out where you stop before someone else does.

  1. Pick one file from your project, close the agent, and explain it line by line, out loud, recording yourself.
  2. Break something in that project on purpose, or have someone else break it, then find and fix it by hand. Time it, and note every point where you reached for the agent.
  3. Take questions 10, 14, 15, 32, 43 and 46 from the hard questions bench, and answer them out loud, then have a person or a fresh agent follow up twice on each.
  4. List everything you couldn't answer. For each, write what you would have to do to be able to answer it, and then do the first one.

Done when: A recording or notes of the walkthrough, a timed hand-fixed bug with its commit, and a list of what you couldn't answer with at least one item crossed off.

The build, stage 18 of 18

Your interview pack

A README that links every claim to evidence, a sceptical agent’s check of those links, and a walkthrough done with the agent off.

About 120 to 180 minutes, on the same app as every other stage. We ran it first and show what went wrong.

Open stage 18 of the build

Gate 18: The proof

0 of 6 right

  1. 1An interviewer says: "Doesn't METR show that AI makes developers slower? Why would we want this?" What do you say?

  2. 2In an interview: "Veracode says 45% of AI code is insecure. How can you possibly ship it?" What is the best answer?

  3. 3A vendor offers a review bot that is "90% accurate": it catches 90% of broken pull requests and wrongly stops 10% of good ones. About 5% of your pull requests are broken. Your team wants it as a blocking check. What should you expect?

  4. 4You have an interview next week. Your project is a generated app with no tests and one giant commit. You want to be able to say you have a harness. What do you do?

  5. 5A company has sent you a take-home. The instructions don't mention AI. You build everything with agents. What do you do?

  6. 6You said your tests catch real bugs. The interviewer says: "Show me how you know." You have 100% line coverage and have never run mutation testing. What do you say?

The workshop

Name a word, or describe what you mean in everyday language.