<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Erdi BAY</title>
    <description>The latest articles on DEV Community by Erdi BAY (@erdibay).</description>
    <link>https://dev.to/erdibay</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4022152%2F1f40d25c-da21-4e26-bea5-5f9eff3684f4.png</url>
      <title>DEV Community: Erdi BAY</title>
      <link>https://dev.to/erdibay</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/erdibay"/>
    <language>en</language>
    <item>
      <title>Diff Debt: Every AI-Generated PR You Merge Without Reading Is a Loan</title>
      <dc:creator>Erdi BAY</dc:creator>
      <pubDate>Thu, 09 Jul 2026 05:24:58 +0000</pubDate>
      <link>https://dev.to/erdibay/diff-debt-every-ai-generated-pr-you-merge-without-reading-is-a-loan-91l</link>
      <guid>https://dev.to/erdibay/diff-debt-every-ai-generated-pr-you-merge-without-reading-is-a-loan-91l</guid>
      <description>&lt;p&gt;&lt;em&gt;diff debt (n.) — the accumulated risk of merging AI-generated diffs that no human has actually read.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  I shipped code I've never read. So did you.
&lt;/h2&gt;

&lt;p&gt;Here's a confession. A few months ago I built a desktop automation bot called Erci — GUI, computer vision, license system, the whole thing. It works. People use it. And I have never truly read most of its code.&lt;/p&gt;

&lt;p&gt;I'm not even a professional developer. I described what I wanted to an AI assistant, it produced the code, I ran it, and when it worked, I moved on. Thousands of lines accumulated this way. The bot is great — until something breaks in a module I've technically "owned" for months, and I open the file and realize I'm reading it for the first time.&lt;/p&gt;

&lt;p&gt;If you're a professional developer, your version of this story is more subtle but structurally identical: the agent produces a plausible 900-line diff, the checks are green, the sprint is on fire, you skim, you approve, you merge. The pull request looked perfect. That's exactly the problem — it &lt;em&gt;looked&lt;/em&gt; perfect.&lt;/p&gt;

&lt;p&gt;I started calling this &lt;strong&gt;diff debt&lt;/strong&gt;: the gap between what was merged and what was actually reviewed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it needs its own name
&lt;/h2&gt;

&lt;p&gt;We already have good words for the neighborhood. &lt;em&gt;Technical debt&lt;/em&gt; lives in the code — shortcuts you consciously took. &lt;em&gt;Verification debt&lt;/em&gt; (a framing AWS CTO Werner Vogels pushed at re:Invent 2025) is the macro cost of inadequately checking AI output. &lt;em&gt;Comprehension debt&lt;/em&gt; (Addy Osmani's term) is the erosion of the mental model you used to build for free just by writing code yourself.&lt;/p&gt;

&lt;p&gt;Diff debt is the unit-level version. It accrues one unread pull request at a time, which is exactly why it's invisible: no single skimmed diff feels like a decision. Nobody chooses to stop understanding their codebase. It happens 400 green-checked lines at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The math got broken
&lt;/h2&gt;

&lt;p&gt;Generation got fast. Review didn't.&lt;/p&gt;

&lt;p&gt;An engineer writing 500 lines by hand builds understanding as a side effect of writing. An agent producing 5,000 lines in six minutes produces zero understanding — that work is now a separate, unpaid job called review, and the numbers say it isn't happening:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sonar's 2026 survey of 1,100+ developers found roughly &lt;strong&gt;42% of committed code is now AI-generated&lt;/strong&gt; — projected to hit 65% by 2027.&lt;/li&gt;
&lt;li&gt;The same survey: &lt;strong&gt;96% of developers don't fully trust&lt;/strong&gt; AI-generated code to be correct, yet &lt;strong&gt;only about half always check it&lt;/strong&gt; before committing. That spread between distrust and verification &lt;em&gt;is&lt;/em&gt; diff debt accruing in real time.&lt;/li&gt;
&lt;li&gt;Since AI tool adoption, average PR sizes have roughly tripled in many orgs — diffs that used to be 100–200 lines now arrive at 400–600. A 400-line diff can be read. A 4,000-line diff can only be skimmed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How the interest compounds
&lt;/h2&gt;

&lt;p&gt;Like financial debt, diff debt charges interest. Unread code becomes the foundation for the next unread diff. Six months later a production incident lands at 2 a.m. in a module that "someone" reviewed, and the debugging session costs more than writing the feature from scratch would have. Refactors stall because nobody can predict what breaks. Onboarding slows because there's no one to ask — the author was a model, and the reviewer was a glance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Paying it down
&lt;/h2&gt;

&lt;p&gt;You can't read everything; the volume math doesn't allow it anymore. Paying down diff debt means spending review attention where wrongness is expensive:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Risk-tier your reviews.&lt;/strong&gt; Anything touching money, auth, data deletion, or external side effects gets a real human read. Boilerplate can pass on green checks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cap diff size.&lt;/strong&gt; If the agent hands you 4,000 lines, make it deliver in reviewable increments. Reviewability is a feature; demand it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demand tests that encode intent&lt;/strong&gt; — not tests the model wrote to flatter its own implementation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track comprehension like a metric.&lt;/strong&gt; If nobody on the team can explain a module, treat it as an outage waiting for a date.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The teams that win the next few years won't be the ones that generate the most code. They'll be the ones that know, with confidence, what's actually in theirs.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I documented the full definition at &lt;a href="https://diffdebt.com" rel="noopener noreferrer"&gt;diffdebt.com&lt;/a&gt;. If your team has its own name for this, I'd genuinely like to hear it.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
