← All AI Engineer talks

AI Engineer World's Fair 2026

ReviewDebt: a practical framework for scoring every pull request — Sachin Gupta, eBay

Read the talk

ReviewDebt: measuring the human work behind every pull request

Coding agents can increase code production faster than teams can establish trust. ReviewDebt turns the shape and evidence of a pull request into a repeatable review conversation.

From a talk by Sachin Gupta

Before you start: Familiarity with pull requests, CI tests, and code ownership is sufficient; no prior knowledge of ReviewDebt is required.

Code production can outrun review

What happens when a team produces more code while giving each change less human attention? Sachin Gupta opens with that gap, citing GitHub’s 2025 Octoverse figures: commits increased approximately 25% year over year, while comments on commits decreased 27%. He uses commit comments as a proxy for review activity. That proxy needs a boundary: GitHub’s separate issue/PR-comment measure was essentially flat, so fewer commit comments alone cannot establish a decline in overall review attention.

The review bottleneck appears more directly in Faros’s 2026 engineering telemetry. Faros reports median time in review increasing 441.5%, or about 5.4 times the baseline, and 31.3% more PRs merging without review. Its methodological explanation describes comparisons between each organization’s lowest and highest AI-adoption periods across two years, rather than a simple year-over-year comparison. These are correlations; the unreviewed-merge figure is a relative increase, not the share of all PRs merged without review.

Slide titled “Coding agents ship PRs faster than humans can trust them,” with +25% commits and −27% comments on commits, supporting review statistics, and a yellow review-debt callout.
The review gap: commits rise 25% while comments on commits fall 27%.

The concern is compatible with coding agents making engineers faster. ReviewDebt is the gap between producing a change and establishing that humans can responsibly trust it. Gupta’s framework makes that gap discussable through five signal families, three scanner walkthroughs, and a scan of public repositories.

0:000:12
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:00 · section reference included

What throughput leaves out

Delivery dashboards can tell an encouraging story while leaving this gap invisible. Gupta describes roughly 16% more PRs per developer in the Faros cohort of 22,000 developers and more than 4,000 teams; Faros’s public summary labels the corresponding 16.2% figure as an increase in PR merge rate. DX’s PR-size analysis reports a median increase from 44 to 72 lines between July 2025 and June 2026, which Gupta describes as about 63%. That size analysis is separate from DX’s 16-month productivity study, covering more than 400 organizations, in which AI tool usage increased 65% while median PR throughput rose just under 8%. Gupta also describes open-to-merge cycle time as modestly lower.

Those measurements describe production, but their interpretation depends on how the work changed. Splitting one PR into seven increases PR count without necessarily increasing delivered value. Larger PRs can represent bloat. A shorter merge cycle can result from reviewers ceasing to push back. The speed of production does not measure the speed of trust.

The missing costs show up in recognizable engineering behavior:

  • Reviewer fatigue: engineers carry more review load, with less attention available for each change.
  • Late-night merges: a PR waits three or four days, then receives a thumbs-up at 11 p.m. before a Friday deadline.
  • Test theater: tests assert what the implementation does, including bugs, rather than what it should do.
  • Architectural drift: the same problem acquires three different solutions in three different files.
  • Incident lag: a failure appears weeks or months after merge, without anyone connecting it to the original AI-authored change.

A throughput dashboard can improve while all five conditions worsen.

Slide titled “What those numbers quietly stop measuring,” with five labeled blocks describing hidden engineering costs.
Five hidden costs: reviewer fatigue, late-night merges, test theater, architectural drift, and incident lag.
2:122:27
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

2:12 · section reference included

Why the gap compounds

More precisely, ReviewDebt is the accumulating gap between code an agent has produced and code humans have reviewed, trusted, and understood. Its interest is paid in human attention. Three feedback loops make the debt harder to repay as it grows.

First, insufficiently reviewed code becomes material for the next change. Fine-tuning, retrieval-augmented grounding, and in-context suggestions all allow yesterday’s implementation to shape tomorrow’s PR. A questionable pattern can therefore reproduce through the repository. Second, when most of a PR is generated, reviewers can narrow their attention to syntax and obvious bugs. Architectural decisions then move from review time to never. Third, leadership resets its expectations around the new throughput without adding proportional review capacity. The slack needed to revisit old decisions disappears. Each loop is survivable on its own; together, they can sustain continued accumulation.

4:465:05
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:46 · section reference included

Measure review burden from the PR

The scoring contract is deliberately deterministic: five signal families contain ten checks computable from a pull request and its repository. An LLM judge would introduce another moving part. Changing the model could change the score for the same PR, making the result harder to defend in an engineering review. A useful score should instead lead back to identifiable properties of the change. The families are diff size and coupling, test evidence, directory and ownership spread, AI-authorship indicators, and evidence and rationale.

Diff size and coupling starts with net lines changed, files touched, and whether the changes cluster within one module or spread across many. Gupta describes a recurring failure mode in which an agent fixes the same symptom at multiple call sites instead of moving the fix to its root cause. That distinction matters more than line count alone: a reviewer must hold the relationships between the changed files in mind. As coupling grows, review effort can rise more steeply than the size of the diff.

Test evidence gap uses a simple per-PR ratio:

Test-to-code ratio=test lines addedproduction lines added\text{Test-to-code ratio} = \frac{\text{test lines added}}{\text{production lines added}}

Gupta describes AI-authored changes arriving with minimal tests or no test files. Yet generating more tests does not automatically close the gap: a test can faithfully encode an implementation’s current behavior while preserving its bugs. The ratio measures test presence, not whether the assertions express the intended behavior. Human review still has to establish the latter.

Directory and ownership spread counts the distinct code-owner teams whose files appear in the diff. A change contained within one team’s territory may fit one reviewer’s mental model. A cross-team change requires several people to reconstruct different contexts and coordinate their approvals. The typing time saved by an agent can be consumed by the cost of assembling that attention.

6:006:14
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:00 · section reference included

Authorship clues and the missing why

AI-authorship indicators route attention; they are not proof of authorship or grounds for blaming an engineer. Gupta describes three detection modes:

  • Co-author footers: commit attribution naming an assistant such as Copilot, described as the strongest signal.
  • Branch patterns: prefixes associated with Codex, Copilot, or Cursor.
  • Disclosure phrases: wording such as generated by or assisted by in PR bodies and commit messages.

In an initial check of 524 PRs across three anonymized public repositories, A, B, and C, Gupta reports a 0% result for a disclosure signal in repository C despite his understanding that coding agents were used there. He suggests markers might have been suppressed, but the result only establishes missing detectable disclosure—not the absence of AI assistance or the reason for missing markers.

Evidence and rationale gaps ask whether the PR explains why the change is necessary, rather than merely naming what changed. The contrast is concrete:

Description elementHigh gapLow gap
TitleFix flaky testIdentifies the actual change
Body18 charactersSymptom, diagnosis, change
Supporting contextCommit message: updatesLink to a benchmark

The stronger description gives a reviewer a claim to evaluate and evidence to follow. Without that context, the reviewer must reconstruct the author’s diagnosis before assessing the implementation.

Gupta calls missing rationale the fastest destroyer of reviewability in regression fixtures and hand-scored examples. He also distinguishes those demonstrations from the open-source sample, where conventional formatting was common and this signal fired rarely. A dramatic fixture shows what a check detects; it does not establish how often the problem occurs.

9:5410:07
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

9:54 · section reference included

Turn the score into a review action

The combined score runs from 0 to 100. Its weights are defaults to calibrate against a team’s actual review experience, not universal constants. Gupta recommends scoring the last 200 merged PRs and checking whether the highest scores correspond to changes reviewers found burdensome. The presentation specifies the signal families and action bands, but not the complete ten-check formulas, default weights, or conversion to reviewer minutes.

ScoreReview action
0–24Very low review burden
25–49Normal review; standard care
50–74Request author evidence before senior review
75–100Split the PR or request more context

These bands turn a number into a next step. A high score should explain what information or restructuring would make review tractable.

The action policy can be represented independently of the underlying scorer:

typescript

type ReviewAction =
  | "low-burden"
  | "standard-review"
  | "request-evidence"
  | "split-or-request-context";

function reviewAction(score: number): ReviewAction {
  if (!Number.isFinite(score) || score < 0 || score > 100) {
    throw new RangeError("ReviewDebt score must be between 0 and 100");
  }
  if (score < 25) return "low-burden";
  if (score < 50) return "standard-review";
  if (score < 75) return "request-evidence";
  return "split-or-request-context";
}

Keeping the action mapping separate makes the operational decision explicit without pretending that the score itself supplies all the evidence a reviewer needs.

12:2512:35
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

12:25 · section reference included

Three PRs, three review conversations

The demonstration proceeds through prepared CLI reports rather than a live scanner run. The clean PR scores 0/100, with an estimated six minutes of review effort and no checks fired. Its Why, Reviewer Focus, and Author Next Actions sections are empty. That absence is intentional: the scanner should generate advice only when it has a specific concern, leaving healthy changes with a minimal report.

Clean PR walkthrough showing estimated human review effort of 6 minutes; Why, Reviewer Focus, and Author Next Actions each say None, and the score breakdown says No checks fired.
A clean PR report shows ReviewDebt 0/100, low review burden, and no checks fired.

The next example, described as public-repository material used in the scanner’s regression suite, scores 60/100 in the Needs Evidence band, with an estimated 86 minutes of review effort. Here the report has three useful jobs: explain which checks fired, tell the reviewer where to focus, and tell the author what to change or supply next. The score establishes urgency; the structured advice makes it actionable.

The report labels soft AI-authorship indicators as “information only, not a definitive claim and not a penalty on its own.” Nevertheless, the AI-indicator check contributes five of the 60 points; the remaining 55 come from diff size, claim mismatch, and missing tests. The intended distinction is conditional amplification rather than a standalone penalty for using an agent. The exact conditional rule is not specified, but most of this example’s burden comes from properties that would also make a human-authored PR difficult to review.

The third PR is AI-authored and well-shaped. Gupta describes the same agent doing similar work, now with tests added, green CI, and the risky path called out in the description. It scores 7/100, in the low-burden band, and displays 14 minutes of review effort. That figure is presented as scanner output, not an established measurement of elapsed human review. The AI indicator still fires at low severity and contributes two points, while the report retains its information-only qualification. AI assistance and low review burden can coexist when the change carries the evidence needed to evaluate it.

13:2413:41
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

13:24 · section reference included

Volume accumulates burden even when authorship markers stay flat

The broader scan covers 524 PRs across three public repositories. Gupta initially introduces it as a 90-day view. The central observation is that review burden can rise while detected AI-authorship indicators remain relatively steady. He reports 186 estimated senior-reviewer hours for one repository over 27 days, versus 43 hours for another, describing equal windows with different PR volumes. Those figures are effort estimates from the framework, not time-tracking records.

Gupta reports that AI indicators fired on 5–20% of PRs weekly across the three repositories, without disproportionate concentration in the high-burden bands. Only four of the 524 PRs reached Needs Evidence or High, and all four involved structural work: large migrations, SDK rewrites, or multi-team refactors. Marker prevalence describes detected disclosure, not the true proportion of AI-authored code. Within this scan, complexity distinguishes the hardest individual reviews, while volume determines how much review work accumulates.

The aggregate figures need to be read with their reporting limits. Gupta gives a total of 228 estimated senior-reviewer hours across the three repositories, now specifying observation windows of 27–90 days. That total does not reconcile with the earlier 186- and 43-hour figures, which already sum to 229 hours before a third repository is included. The presentation does not resolve the discrepancy, so the aggregate cannot support a precise staffing calculation. Separately, he reports a sustained merge rate of nine PRs per day for the high-velocity repository.

The most extreme individual PR has an estimated review effort of 5,036 minutes—about 84 hours—while scoring 73 in Needs Evidence. This separates two outputs that should not be conflated: a bounded score used to route review and an effort estimate used to describe workload. A score below the highest band can still accompany a very large review task. Gupta’s operational concern is the accumulation of that work as PR volume increases, not a claim that every AI-assisted PR is unusually difficult.

17:1517:29
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

17:15 · section reference included

Make the change easier to understand

The immediate interventions follow the signal families and require no new tooling:

  • One logical change per PR: optimize for a coherent review task, rather than smallness in the abstract.
  • Tests ship with the change: even when an agent writes both implementation and tests, the human author confirms that the assertions capture intended behavior.
  • One owner territory: split cross-cutting work into team-specific PRs where possible, keeping each review within one context and mental model.
  • The human author writes the why: Gupta treats the PR description as the moment the author commits to understanding what is being shipped.
  • The same review standard applies to everyone: AI-authored and human-authored changes need the same evidence. Gupta describes the authorship amplifier as activating when other signals are weak; strengthening the other four families addresses the underlying burden.

These practices reduce the work a reviewer must reconstruct before making a responsible decision.

19:5520:06
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

19:55 · section reference included

Surface the score without blocking the work

A rollout can fit into the existing PR workflow:

  1. Backfill: score the last 200 merged PRs and inspect the highest-scoring changes.
  2. Set a justification threshold: Gupta suggests 50 as a starting point; an author supplies a comment for a PR at or above that score.
  3. Surface the result: post a score comment on every PR for visibility, without making the scanner a merge blocker.
  4. Aggregate weekly by team: watch the slope of the debt line, not just individual scores.
  5. Discuss the result: bring it into retrospectives and roadmap reviews so review capacity becomes part of planning.

The justification threshold creates a conversation about evidence. It does not have to become an automatic rejection rule.

That conversation can connect delivery gains to their human cost: an AI rollout added X% throughput, while Y review-debt points accumulated over Z weeks; at the current slope, the associated workload is approximately N senior-engineer hours. The hours component requires a locally credible effort estimate. Its purpose is to make staffing and prioritization discussable alongside production gains.

Gupta forecasts a shift from adoption in 2026 toward governance in 2027. The questions then become concrete: can the team trust the code it ships, who is accountable when an AI-authored change causes an incident, and where is the audit trail? ReviewDebt is intended to connect those questions to everyday review decisions while retaining the productivity gains of coding agents.

21:1521:32
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

21:15 · section reference included

Start with twenty PRs and an honest review

Before building the tooling, take 20 PRs from the previous week and score them manually using the five signal families. That small exercise tests whether the framework identifies the review problems the team actually recognizes. Then plot the results weekly: Gupta emphasizes the slope more than the current level. Bring throughput, debt, and the direction of change into the next review or sprint-planning discussion.

The measurement only matters if it changes review behavior. An approve-with-comment merge is not a substitute for resolving a concern. Saying the AI did the boring part, expecting QA to catch the problem, or pointing to smaller PRs does not establish that someone understands the change. Gupta closes by asking engineers to stop reflexive LGTM approvals and apply the habits that make a PR reviewable. The responsibility remains with the people shipping the code.

Takeaways slide with three numbered recommendations, including scoring twenty PRs by hand, tracking review debt over time, and discussing measurements; an anti-pattern warning strip runs along the bottom.
Measure the gap, make the slope visible, and have the conversation.
23:3823:56
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

23:38 · section reference included

Resources

From the talk

Read the complete timestamped transcript
  1. 0:00

    Hi, everyone. I'm Sachin Gupta, and I'm a software engineer. The title is exactly what it sounds like. Your coding agent is creating review debt. Before I start, sit with the title for a second.

  2. 0:12

    Notice what it is not saying. I'm not saying that coding agents are bad. I'm not saying they don't make us faster. I'm saying they, they're creating a kind of debt that nobody is measuring, and that debt is going to come due.

  3. 0:28

    Over the next few minutes, here is what I'm going to do. I will define what review debt is. I'll walk five signal families that are going to compose it.

  4. 0:37

    I'll score three real pull requests side by side, and I will show you a cross-repo scan of over five hundred PRs, which is nothing but three public code bases.

  5. 0:45

    So let's go. So look here. Here's the gap nobody's measuring. GitHub's 2025 Octoverse report that covers almost every public pull request on the planet shows that the commits climbed twenty-five percent year over year.

  6. 1:03

    And now over the same year, comments on the commits dropped twenty-seven percent. Now, these comments are nothing but the proxy for review activity. Code production volume actually went up, but the review attention went down.

  7. 1:16

    They moved in opposite directions, that too, in the same year. Now, look at the teams furthest along the AI adoption curve. Faros AI tracks this cohort in their 2026 benchmark.

  8. 1:28

    Median PR review time is up by four hundred and forty-one point five percent. And if you see, like if you calculate, you'll figure out that the review PR take five point four times longer than what they used to.

  9. 1:41

    And then thirty-one percent more PR are now merged with no review at all. So AI produce-- AI is producing the code very fast. AI is producing the pull request very fast, but humans cannot responsibly review them at that pace.

  10. 1:56

    This gap is called as ReviewDebt. It actually accrues quietly, it compounds, and right now, nobody has a number for it. But by the end of this talk, I will make sure that you will have a certain number.

  11. 2:12

    Now, if you look at this particular slide, here is the story every team is telling right now. PR per developer are up sixteen percent. That's the Faros AI Acceleration Whiplash Benchmark, and that too from April 2026.

  12. 2:27

    There were like twenty-two thousand developers, four thousand teams, and the median PR size is up sixty-three percent. Forty-four lines to seventy-two lines per pull request. That is basically sixteen months of long-term data from DX 2026 study, which includes four hundred organizations.

  13. 2:46

    Now, if you see the cycle time open to merge, that is modestly down, and it is coming from the same DX study. The framing is very generous. PR throughput grew actually about eight percent, and the AI usage rose about sixty-five percent.

  14. 3:02

    The gain that we see today is real, but it is actually smaller than the hype that, that is present. Every one of these numbers are real. None of them is a lie, but every one is a vanity metric.

  15. 3:14

    PR count goes up when one PR splits into seven PRs. Median PR size going up is not a benefit, it's actually a bloating. Cycle time going down when reviewers stop pushing back.

  16. 3:26

    These things tell you the speed of production. They do not tell you the speed of trust.

  17. 3:32

    Now we will go into the next slide to see more.

  18. 3:42

    Now, if you go looking for the second story, here is what you're going to find: reviewer fatigue. Engineers carry far more review load than a year ago. They're not happier about it.

  19. 3:54

    Late-night merges. PRs are sitting unreviewed for three days, four days, and then they suddenly gets a thumbs up at 11:00 p.m. before a Friday deadline. Test theater. Tests are getting added, but they're actually asserting what the code did, not what the code should do.

  20. 4:11

    They lack in behavior, including bugs. Architectural drift. Again, the same problem that is solved in three different ways in three different files. Nobody is actually holding up the architectural thread.

  21. 4:25

    Finally, incident lag. When something breaks, the bug lags week or months after mon-- uh, after merge. Nobody connects the dot back to the AI author change. These costs don't show up in any dashboard until now.

  22. 4:42

    We'll look into the next slide to know more about it.

  23. 4:46

    So now let me give you the definition. ReviewDebt. It's the accumulating gap between code your agent has produced and the code humans have actually reviewed, trusted, and understood. It rhymes with technical debt, but it is more like a financial debt because it compounds.

  24. 5:05

    It actually accrues interest, but this interest is not money. This interest is paid in human attention. It compounds because of the three feedback loop. First, the agent learns from your code base, fine-tuning, RAG grounding, in-context suggestions.

  25. 5:19

    Code that was not deeply reviewed yesterday grounds tomorrow's PR. This debt becomes generative in nature. Second one, reviewers cede the architectural call. When most of a PR was generated, attention contracts to syntax and obvious bugs.

  26. 5:37

    Big picture decision moved from review time to never. Third one, velocity expectations reset. Once leadership sees the new throughput, you don't get to hire reviewers in proportion. There is no slack left to pay the debt back.

  27. 5:51

    Each loop on its own is survivable. Together, you will have a runway, but the next question is: How are you going to measure it?

  28. 6:00

    So how do we measure review debt? There are five signal families that has like 10 deterministic checks. Remember, the keyword here is deterministic. Every check is computable from a pull request and its repository.

  29. 6:14

    No, we don't need any language model. Why? Because LLM, when it acts as a judge, it possibly can break two things. Number one, the score becomes a moving target.

  30. 6:26

    The same PR, basically the score that you got for the same PR, will score differently when your model will change. Two, the scores stop being defensible in an engineering review.

  31. 6:39

    You cannot put it on a slide. You cannot put it in front of an leadership. So what do you want? You want a number that is traceable to a deterministic computation, different size and coupling.

  32. 6:51

    Second, test evidence gap. Third, directory and ownership spread. Fourth, AI authorship indicators. Fifth, evidence and rational gaps. These are the five families that will have 10 checks under them.

  33. 7:08

    Let's walk each of them. The first one, the first signal that we have is dev size and coupling. This is the simplest one to calculate, basically. It's also the most often misread.

  34. 7:21

    What it measures is the net lines changed, the files touched, whether changes cluster in one module or is it sprawling across many. Why the agent is struggling here? Agents are biased toward fix at the call site.

  35. 7:34

    A human engineer routes a fix to the root cause. That keeps the difference very small. But an agent will reach into many files looking for the same symptom. The reviewer cost of a sprawling difference is not proportional to the size.

  36. 7:48

    It is actually much steeper. So the cross-file coupling explodes the mental model and reviewer has to hold. We'll look into the second signal, which is test evidence gap.

  37. 8:03

    So what is test evidence gap? Test evidence gap is nothing but test lines added divided by the productions line added per pull request. So AI-authored PRs, they ship with a far lower test-to-code ratio.

  38. 8:16

    Sometimes there is no test file in place, and if there is any, it's minimal. So this gap is actually a consistent gap. And the problem with this particular thing is the number, the reason this number is basically brutal is the agent generate test.

  39. 8:31

    They generate a lot of tests, but these tests basically assert what the code is doing. It bas-- It does not generate the test cases what the code should actually do.

  40. 8:42

    They lock in the behavior, including the bugs. The ratio does not capture the quality gap. It just measures whether the test showed up at all. So the deeper signal is the next step that is a layer down.

  41. 8:56

    We'll see the next one, which is directory and ownership spread.

  42. 9:03

    So what is directory and ownership spread? Count the distinct code owner teams whose file appear in the difference. Now, what does it mean? Basically, a well-shaped PR concentrates in one team territory, but a sprawling one reaches across many team file, and the reviewer cost is enormous in this scenario.

  43. 9:22

    No single human hold the whole mental order, uh, model. You need multiple approvals from multiple engineers in multiple different context. The coordination overhead easily exceeds the time the agent save producing the code.

  44. 9:37

    This is where you start to feel the economics of review debt. The agent gave you free hours of typing. You spend those free hours buying multi-party reviewer attention back.

  45. 9:48

    And the next one we are going to see is AI authorship indicators.

  46. 9:54

    So what is AI authorship indicator? Before everyone gets defensive, this is not for the blame. We are not flagging that engineers use coding agents. We made the score so a PR shaped like agent-assisted authorship get extra reviewer attention.

  47. 10:07

    So that way, you know, right, like, okay, this is the PR that is directly coming from the agent. And there are, like, the very common three detection mode. I must, I, I think everyone must have seen it by now.

  48. 10:18

    One is the co-author footer, which is basically one of your strongest signal. You see that "co-authored by Copilot". Second one is the branch name pattern. Generally, you must have seen it says Codex, Copilot, Cursor prefixes.

  49. 10:30

    Third one is basic "generated by", "assisted by", which is nothing but your PR body or commit message phrases. We did actually a real data check on three public repos, which comprised of five twenty-four PRs.

  50. 10:42

    I'm not going to name the company, but for the sake of, uh, we are just calling it A, B, and C. Now, if you see the highest signal was the co-author footer, and the second one, the lowest signal was 0% on the repo C, even though it was done by coding agent, but they might have blocked it,

  51. 11:00

    uh, saying any co-authored or, uh, like generated by et cetera, et cetera. The next thing that we are going to see is evidence and rational gaps.

  52. 11:12

    So evidence and rational gaps. I think this is one of the most deterministic that I personally feel. It's the one that destroys review ability the fastest. What it measures basically, does the PR explain the why or just the what?

  53. 11:28

    On the left, if you see, we have an high gap. On the right, we have a low gap. The title says, "Fix flaky test." And all the data that you are seeing here is actually from some public repos.

  54. 11:40

    Now, the PR body length is 18 characters. The commit message says updates. Obviously, I will not be-- If you gave it to me, I won't be able to review this, okay?

  55. 11:48

    I cannot accept this. But in, on the right, if you see, when there is actually a low gap, the title actually is telling you what the change is all about.

  56. 11:56

    The body has a symptom, the diagnosis, the change, and the link to the benchmark. Now, a reviewer can do the job. So in our regression fixtures and hand-scored teams, this signal destroys reviewability, pass test.

  57. 12:11

    In the real open source data, PR bodies follow conventional commit format, so it fires most rarely there. But if you see the regression fixtures are just the demos. Okay, let's see how those five signal combine.

  58. 12:25

    You will only have one number that is going from zero to 100, and the exact weights are basically your defaults. Now, if you're planning to adopt this, I would like you to do this first.

  59. 12:35

    Run it backwards over the last 200 PRs that have been merged in your company. Calibrate the weight against your team actual reviewer experience. The score has to feel right against your actual guts.

  60. 12:46

    We-- You are going to divide it into four bands. If you are zero to 24, which means you have very low review burden. If you have 25 to 49, you have normal, proceed with the standard care.

  61. 12:59

    Fifty to 74, you need evidence from the author before senior review. And if you are [REDACTED:age] and above, definitely it's high split or request more context. Same shape as technical debt categories, but the unit is different.

  62. 13:13

    Now, we are going to see what the scanner actually did.

  63. 13:24

    Now, if you see, this is the clean PR. Unfortunately, I won't be able to give you a live demo today, but I will walk you through a CLI. I wanted to show three score pull requests side by side, the level where the framework become useful as a repeatable review conversation.

  64. 13:41

    This is the first one. If you see, this is what the scanner says when a PR is well-shaped. Score out, zero out of 100. The burden is basically nil.

  65. 13:51

    It's zero. We have a low review burden. The estimated minutes is six. No checks were fired. And if you look the structure here, that is why the list is empty, reviewer focus is empty, author next action is empty.

  66. 14:05

    The framework only generate advice when it has something specific to say. A healthy PR produces a tiny, almost ceremonial report. That's exactly what you want. And the takeaway is most healthy PRs produce zero noise.

  67. 14:20

    They get the work done without making any noise. This is not a tool that complains by default. Running it on every PR costs you one comment that says, "Look good."

  68. 14:31

    That's it. Let's see the high debt PR now.

  69. 14:37

    Now you see, what you see actually on the screen is from a public repo. This is a real scenario from the scanner regression suite.

  70. 14:48

    If you see the score is here, sixty out of hundred. It requires evidence. It's, on the orange, it says Needs Evidence. Eighty-six estimated minutes of review effort. Look at the structured output.

  71. 15:01

    It's actually not a score. A why list explaining what fired, a reviewer focus list telling the reviewer what to do next, an author next action list telling the author how to bring the score down.

  72. 15:14

    This is the part most PR quality tool miss. The score alone is useful. The structured advice is what actually moves the team behavior. Now, if you read the bullet four, it says, "PR has soft indicators of AI-assisted authorship."

  73. 15:29

    This is information only, not a definitive claim and not a penalty on its own.

  74. 15:37

    This particular ste-- uh, sentence is in the scanner output. The AI indicator check contributes five of the 60 points, which is nearly about eight percent. The other 55 came from a different size claim mismatch and missing test.

  75. 15:54

    Those would be high burden signals on any PR, agent authored or not authored. This is not an anti-AI scorecard, basically. This is more of a review burden scorecard. The agent did not cause the score, but the shape of the PR that is created by the agent did this.

  76. 16:12

    Let's see the next one. This is a PR, basically, which is AI authored. It's very well-shaped and the score is sen- seven, which is low review burden.

  77. 16:30

    Now, if you see the same agent, it has done the same kind of work, but the tests were added, so the CI is green. The risky path is called out in the PR description.

  78. 16:39

    That's why we got the score as seven out of 100. It's very low burden, took only 14 minutes. The AI indicator check still fires, but it contributes two point.

  79. 16:50

    One, low severity. Second, the framework explicitly says, quoting the report itself, "Information only, not a definitive claim and not a penalty on its own."

  80. 17:02

    So when your team is going to ask, "Will this tool penalize us for using coding agents?" No. The answer is on your screen, low review burden. It's a very well-shaped AI PR.

  81. 17:15

    We are going to see the next one, which is basically our three public repos over five hundred and twenty-four PRs. I wanted to show you a 90-day AI search slope across three public repos and 524 pull requests.

  82. 17:29

    The review burden climbs even when the AI authorship doesn't. If you see this particular scan, we observe three things. One of them is the volume is the actual variable.

  83. 17:40

    AI authorship was flat, and it was five to 20% steady state, but the review burden was not. If you see one repo accumulated one hundred and eighty-six senior reviewer hours in 27 days, and another one took 43.

  84. 17:54

    The window length is same, but the volume was not the same. The burden was not the same. That is what PR volume is. Second is Amplifier only holds up under real data.

  85. 18:04

    Which means AI indicators fired on 5 to 20% of PRs every week across all three repos. None of those AI-authored PRs disproportionately landed in the high burden band. The positioning contract holds against real code bases.

  86. 18:19

    Third one is complexity drives burden, not authorship, which means across 524 PRs, four landed in needs evidence or high bands, which means all four were structural changes, which were large migration, SDK rewrites, multi-team refactors.

  87. 18:35

    The frameworks score complexity fairly. AI-driven volume creates the condition under which these accumulate. So now what 524 PR look like under the lens? Where does the review debt actually show up?

  88. 18:49

    In absolute terms, the scanner saw 524 real pull requests in three public repos, 228 senior reviewer hours cumulated across three public repos that were scanned over 27 to 90 days windows.

  89. 19:04

    Second one is nine PR per day, sustained merge rate, a high velocity repo. So if you see, it's all about the volume that is basically driving the burden.

  90. 19:16

    Third one is 5,036. These are the minutes that are basically spent on a single PR, which is nothing but 84 hours of review effort estimated for one single pull request.

  91. 19:31

    The score that we received there was 73, which said it requires an evidence band. Now, 5% to 20% of these PR every week across every week fire the AI indicator signal.

  92. 19:45

    Again, remember this is volume which is causing the review debt, which is changing the game altogether.

  93. 19:55

    We'll move to the next slide. Measure the problem. We have shown the cost. Now what do we do about it? So first thing is you should have one logical change per PR.

  94. 20:06

    I'm not saying like not small PR in the abstract, one logical change. That is enough. Second, test ship with the change. Even if the agent wrote the code, even if the agent wrote the test, the human author confirms the test assert what the code should do, not what the code is doing, what the code is supposed to

  95. 20:26

    do. Okay? Third, stay in one owner territory. Cross-cutting work splitting into per P-- uh, per team PR. Remain in your own territory. One approval, one context, one mental model.

  96. 20:38

    Author writes the why. The agent should not write the PR body. That's the moment the human author commits to understanding what they are actually shipping. Same review standard for the AI PRs as human PRs.

  97. 20:51

    The AI indicator amplifier only fires when other signals are weak. Keep the other four strong. The amplifier is invisible, so make sure there is no exception for AI. None of these is actually requiring you to have a new tool.

  98. 21:08

    These are the moves that you already are aware of. You just need to implement it.

  99. 21:15

    Now, how are you planning to adopt this? If you see, we again have five steps. Backfill, threshold, surface, aggregate, and talk about it. Backfill. So you run the scorer over your last 200 merged PR.

  100. 21:32

    Look at the one basically that has the highest score. Second, threshold. Set a basically justify line. Default, let's say you want to give it 50. So any PR scored at 50 or above requires a comment from the author.

  101. 21:45

    As simple as that. Surface it. Post the score as a PR comment on every PR. Don't block it. Just for the visibility purpose, surface it so that everybody should know what's happening over there.

  102. 21:57

    Aggregate weekly per team, which means the slope of each team debt line is the leading indicator. That's what your engineering manager should watch. Talk about it. Bring the number to a retrospective, every roadmap view.

  103. 22:12

    In every meeting, you should discuss about that n-number, like what was your score when you did this particular PR? That's it.

  104. 22:26

    Why this number matter? Because of this conversation? Absolutely not. Without a number, what you are just conversing is why. But if you have a number, it's actually structured. You can tell like, "Okay, with AI coding agents, we have a rollout which has added X percentage of the throughput," but you need to make sure you are also adding

  105. 22:47

    the Y points of the review debt that has been occurred over Z weeks. Now, at your current slope, that's roughly N sen- N senior engineer hours that you need to talk about.

  106. 22:58

    That moves the discussion from feeling to measurement, so you should always have a number. If you see, 2026, we are adopting things, but 2027 is the year when this conversation will shift to the governance model, and it's actually starting right now.

  107. 23:15

    Can you trust the code that you're shipping? If yes, we are good. If no, then who is accountable when an AI-authored change causes an incident? Where is the audit trail?

  108. 23:25

    So ReviewDebt is basically the bridge between these two columns. It's the first number that lets you have the right-hand side conversation without abandoning the left-hand side gains.

  109. 23:38

    We'll look into the final slide now. Now, three things I would like you to take away. First one is measure the gap. Don't build the tooling yet. Take 20 PRs from the last week, score them

  110. 23:56

    using the five signals that we discussed. You will basically get a number so that you will understand, okay, whether the framework is working right or not. Try to make the slope visible.

  111. 24:05

    The slope of a review debt over time matters most than the level. So plot it weekly and then discuss it with your team, maybe in a meeting or in a sprint planning, whatever the way you feel like.

  112. 24:16

    Have this conversation. Bring the number to your next review. Like, say that, "Okay, we do have X throughput, Y debt, and this is the slope," and then you are basically moving away from the vibe culture to the measurement culture.

  113. 24:30

    One quick call-out on anti-patterns to avoid. First thing is approve with comment merges. The AI did the boring part. No. Will you catch it in QA? No. PR are smaller now?

  114. 24:42

    No. Stop writing LGTM on the PRs. Make sure whatever we have discussed, the habits that we have discussed, we are going to follow them. This is the entire point of the talk.

  115. 24:56

    Thank you very much for listening.