Skip to content
Reality Graph

Concept

Verification Debt in AI Coding

Last updated: 2026-08-157 min read

Verification debt is the growing gap between how fast AI coding tools generate code and how reliably a team can verify that code. Review it, validate it against intent, test it, and stand behind it - before it is merged. Like technical debt, it compounds: every unverified change becomes a foundation someone else builds on. The term spread through the developer community in 2025 and reached the mainstream when AWS CTO Werner Vogels used it at AWS re:Invent.

DiffChecksScopeone ruleverifiedwith limitsblocked
Contents

Why the term is suddenly everywhere

For most teams, 2025 was the year AI-assisted coding stopped being an experiment. Generation became cheap; verification did not. The term “verification debt” spread through the developer community and reached the mainstream when AWS CTO Werner Vogels used it at AWS re:Invent in December 2025, as reported by ITPro. Around the same time, Sonar’s 2026 State of Code survey of more than 1,100 developers put numbers on the gap:

96%

of developers say they do not fully trust AI-generated code to be functionally correct.

Sonar, State of Code Survey

48%

say they always check their AI-assisted code before committing it - barely half.

Sonar, State of Code Survey

19%

longer: how much more time experienced open-source developers took with AI assistance in METR's randomized trial - while believing they were faster.

METR, RCT (2025)

The same Sonar research found that 38% of developers say reviewing AI-generated code takes more effort than reviewing a colleague’s code, and 53% have seen AI produce code that looks correct but isn’t reliable. That combination - near-universal distrust, partial verification, rising review effort - is verification debt accumulating in plain sight. The wider data set - adoption, trust, and review numbers side by side - is collected in the verification gap statistics.

What verification debt is - and what it isn't

Verification debt is a flow imbalance: code enters the codebase faster than the team’s capacity to verify it. It is not a statement about AI code quality. Even if generated code were right nine times out of ten, a team that cannot tell which nine still carries the debt for all ten.

Schematic, not measured data: generation speed keeps climbing, verification capacity barely moves - the widening gap is verification debt.

It differs from technical debt in how it announces itself. Technical debt produces friction you can feel - slow builds, brittle modules, dreaded files. Verification debt produces the opposite: everything looks done. As developer and educator Kevin Browne puts it, it is the AI era’s technical debt - except it breeds false confidence instead of visible friction.

It is also related to, but distinct from, comprehension debt - the O’Reilly Radar term for code nobody on the team fully understands anymore. Comprehension debt asks “do we understand this code?”; verification debt asks “did anyone actually check this change against what we meant to build?”. A team can understand its codebase and still merge unverified changes all day.

Verification debt vs. technical debt, static analysis, and code quality tools

Verification debt is easy to file under a category that already has tooling. It helps to be precise about what each neighbouring check catches and what it leaves open, because the gap between them is exactly where verification debt sits.

ConceptWhat it catchesWhat it missesWhere Reality Graph fits
Technical debtKnown shortcuts and design compromises that raise future maintenance cost.Whether a specific change was checked against intent before it merged.Records the intent and validation behind a change, so shortcuts are chosen, not inherited silently.
Static analysis / code quality (SonarQube, SonarSource)Bugs, code smells, security issues, and maintainability signals from static rules.Whether the change matched the task, respected its scope, and carries evidence a human reviewed it.Adds the intent-and-evidence layer around the run; the two are complementary, not substitutes.
Test coverageWhether the paths a test exercises behave the way the test expects.Whether the model understood the task, preserved constraints, or avoided hidden scope drift.Asks for evidence of what was and was not tested, attached to the change.
Code reviewProblems a human notices in the diff that is put in front of them.What is not in the diff: missing context, the task boundary, what was already validated.Gives the reviewer intent, scope, and a validation summary instead of a raw diff.
Verification debtThe accumulated backlog itself: AI-assisted changes merged without review, validation, or evidence.Nothing - it is the debt, not a check. It grows whenever the checks above are skipped.Structures each run so the debt does not accumulate silently in the first place.
Reality GraphIntent, scope, validation, and a per-run evidence report around AI coding runs.It is not a linter, test runner, or CI - it feeds those better input and keeps a human gate.The layer these rows point to; it is designed to sit beside them, not replace them.
How verification debt relates to the checks teams already run. Each column is strong at its own job, and none of them alone confirms that an AI coding run was correctly scoped, validated, and evidenced.

The point is not that one tool wins. Static analysis, tests, and review each answer a real question, and the SonarQube comparison goes deeper on where code quality assurance ends and verification begins. Verification debt is what is left when the code passes every one of those checks and still nobody can say the change was the right one, done for the stated reason, with evidence attached - the idea behind proof-carrying coding.

Not the same as debt validation

One clarification, because the phrase collides with an unrelated term. On this page, verification debt is a software-engineering concept: the review-and-evidence backlog behind AI-generated code.

It is not debt validation in the consumer-finance sense - the legal process in which a debt collector must verify a claimed debt (for example under the US Fair Debt Collection Practices Act, 15 U.S.C. § 1692g). Those pages share the words “verification” and “debt” and sometimes surface in the same search or AI answer, but the subjects do not overlap.

Where verification debt comes from

Five mechanisms do most of the damage:

  • Generation outruns review capacity. One developer with an AI tool produces more changed lines per day than a senior engineer can critically audit - the core of the AI code review bottleneck.
  • Large diffs invite skimming. AI-generated pull requests tend to be big and plausible-looking, which is exactly the kind of change human reviewers skim rather than scrutinize.
  • The generator grades its own homework. When the same model writes the code, writes the tests, and summarizes the change, there is no independent check anywhere in the loop.
  • Intent is missing at review time. Reviewers see what changed but not the task boundaries the change was supposed to respect - so “is this even the right change?” goes unasked.
  • Verification evidence is nobody’s artifact. What was tested, what was skipped, and what remains uncertain usually lives in a chat scrollback, if anywhere - invisible to the reviewer and gone in a week.

How to measure it in your team

There is no standard metric yet - the honest way to measure verification debt today is directional, from signals you already have:

SignalWhat you measureDebt warning sign
Generation-to-verification ratioChanged lines merged per week vs. reviewer time actually spent.Generation doubled, review time didn’t - the difference is debt.
Review depth trendSubstantive review comments per 100 changed lines, over time.The curve falls while AI-assisted volume rises - reviews are thinning, not improving.
Unverified-merge rateShare of AI-assisted changes merged without human-verified test evidence attached.The share grows month over month.
“Looked right, wasn’t” incidentsDefects traced back to changes that passed review - Sonar found 53% of developers have seen exactly this with AI code.More than an isolated case per quarter.
Rework rateAI-assisted changes reverted, hot-fixed, or rewritten within 30 days.Rising while velocity is celebrated.
Five signals that approximate verification debt from data a team already has - no new tooling needed, a spreadsheet and one short monthly retro surface the trend.

None of these requires new tooling to start - a spreadsheet and one short monthly retro will surface the trend. For formal metrics with formulas and starting thresholds, see measuring verification debt.

What the debt costs once you have a rate

The definition, priced

The last signal in the table above is the one that converts into money. Give it a rework rate your own tickets support, set the other three inputs to your team, and the arithmetic runs here. The larger line is the one no signal catches: the time a reviewer spends working out what a change was meant to do, paid on every AI-assisted change rather than only the ones that turn out wrong. There is a standalone version of this calculator if you want to send the number to someone.

10
20
Share of merges that are AI-assisted
€75

Estimated cost of verification debt

Example – illustrative arithmetic, not a benchmark

€67,000

per year · €5,580 per month

Modelled on about 120 AI-assisted merges a month.

At these inputs the model puts verification debt at €67,000 a year, or €5,580 a month: 74.4 hours of engineering time, 60 of them spent working out what a change was meant to do before it can be judged.

Past break-even.The amber band marks 30 to 40 AI-assisted changes a month, on a logarithmic scale so the whole range fits. Below it the example crosses into marginal territory: little debt left to remove, and the practice roughly pays for itself rather than returning more.
Cost linePer monthHours a month
Review reconstruction€4,50060 h
Rework on churned code€1,08014.4 h
Incident allowancenone assumed0 h
Verification debt as monthly engineering time and cost, from adjustable inputs and the worked example published on the cost model page. Illustrative arithmetic, not a benchmark.

What the model assumed for you· Assumption set as of 2026-08-15

0.5 hours of review reconstruction per AI-assisted change · 2 % of AI-assisted changes reworked for a defect within 14 days, an illustrative rate to replace with your own · 6 hours to rework one churned change

How teams reduce verification debt

The teams that handle this well change what arrives at review rather than reviewing harder:

  • Define the task before the run - scope, affected files, and a validation plan written down before the AI generates anything, so there is something concrete to verify against.
  • Keep diffs small - a reviewable unit of change beats an impressive one.
  • Separate generation from verification - the model that wrote the change should not be the only thing that checked it.
  • Require evidence per change - what was tested, what was not, what is still uncertain, attached to the change itself instead of buried in a chat log.
  • Keep a human approval gate - no auto-commit; a person accepts the change, with the evidence in front of them.
  • Stay local-first where code is sensitive - verification should not require uploading source code to another cloud service.

Where Reality Graph fits

Reality Graph is a local-first verification layer that works beside the AI coding tools a team already uses - Claude Code, Cursor, GitHub Copilot and similar. It applies the practices above as a workflow: task boundaries and context before the run, visible validation and an evidence report after it, with a human approval gate in between. It is currently in private beta; early access is open for a small group of teams.

What it does

  • Structures the task, scope, and validation plan before an AI coding run
  • Keeps source code in your environment - local-first by design
  • Produces a reviewable evidence report per run: intent, changes, validation, open questions
  • Keeps a human approval gate - advisory by default, no auto-commit

What it does not do

  • Replace Claude Code, Cursor, or Copilot - it works beside them
  • Write or commit code on its own
  • Claim benchmark numbers or guaranteed savings - no public claims without linked evidence
  • Replace your reviewers, tests, or CI - it feeds them better input

If these boundaries fit how your team wants to ship:

FAQ

What is verification debt in AI coding?
Verification debt is the growing gap between how fast AI coding tools generate code and how reliably a team can verify that code. Review it, validate it against the original intent, test it, and stand behind it - before it is merged. Every change that ships without that verification adds to the debt.
How is verification debt different from technical debt?
Technical debt usually announces itself: slow builds, tangled modules, painful changes. Verification debt is quieter - the code looks finished and often works, so it breeds false confidence. The cost surfaces later, when unverified changes become the foundation for further changes and nobody can say with confidence what was actually checked.
Why doesn't human code review scale with AI coding?
Because generation got faster and review did not. A single developer with an AI coding tool can produce more changed lines per day than a senior reviewer can critically audit, and large AI-generated pull requests invite skimming instead of scrutiny. Adding more reviewers helps less than changing what arrives at review: smaller diffs, explicit intent, and evidence of what was already validated.
How do you verify AI-generated code before merge?
Practically: define the task and its boundaries before the run, keep the diff small, check the change against the stated intent (not just for correctness in isolation), run validation the generating model did not write itself where feasible, and require the change to arrive with evidence. What was tested, what was not, what remains uncertain. A human stays the final gate.
Does verification debt mean teams should use less AI?
Not necessarily. It means verification capacity has to grow with generation speed. Teams that pair AI coding tools with explicit task boundaries, independent validation, and evidence per change can generate quickly and still know what they shipped. The debt comes from skipping verification, not from using AI.
Who coined the term verification debt?
The idea grew out of the developer community during 2025 as AI-assisted coding became mainstream. It reached a wide audience when AWS CTO Werner Vogels used the term at AWS re:Invent in December 2025, and research such as Sonar's State of Code survey quantified the gap it describes.
Is verification debt the same as debt validation?
No. Verification debt is a software-engineering term for the review-and-evidence backlog behind AI-generated code. Debt validation is a consumer-finance and legal process in which a debt collector must verify a claimed debt. The two share the words but not the subject; they only appear together because search and language models match on the shared terms.
Can static analysis tools like SonarQube remove verification debt?
They reduce part of it, not all of it. Static analysis and code quality tools such as SonarQube are strong at catching bugs, code smells, security issues, and maintainability problems. They do not confirm that an AI coding run was correctly scoped, matched its task, and arrived with evidence a human reviewed it. The categories are complementary: static analysis checks the code, verification practice checks the change and its context.
How does Reality Graph reduce verification debt?
Reality Graph is designed to structure each AI coding run around intent, scope, validation, and a per-run evidence report, with a human approval gate, so changes arrive reviewable instead of accumulating as unverified merges. It works beside tools like Claude Code, Cursor, and Copilot rather than replacing them, and it makes no guaranteed-savings claims.

Keep reading

Sources

Want to see what your last agent run would have looked like?

Request access