<?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: Rishabh Vatsa</title>
    <description>The latest articles on DEV Community by Rishabh Vatsa (@vatsarishabh22).</description>
    <link>https://dev.to/vatsarishabh22</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%2F4196176%2F6f0107c8-dcb9-4a2e-a4fb-ab21ec138918.png</url>
      <title>DEV Community: Rishabh Vatsa</title>
      <link>https://dev.to/vatsarishabh22</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vatsarishabh22"/>
    <language>en</language>
    <item>
      <title>Reviewing AI-written PRs: stop reading diffs, start reading structure</title>
      <dc:creator>Rishabh Vatsa</dc:creator>
      <pubDate>Tue, 20 Oct 2026 12:35:27 +0000</pubDate>
      <link>https://dev.to/vatsarishabh22/reviewing-ai-written-prs-stop-reading-diffs-start-reading-structure-1h3m</link>
      <guid>https://dev.to/vatsarishabh22/reviewing-ai-written-prs-stop-reading-diffs-start-reading-structure-1h3m</guid>
      <description>&lt;p&gt;For a while now, reviewing pull requests has been the hardest part of my week.&lt;/p&gt;

&lt;p&gt;Not because the code is bad. Most of it reads fine. It's that there's more of it than ever, and much of it was written with AI. The author can produce a 600-line PR in an afternoon. I still have to understand it.&lt;/p&gt;

&lt;p&gt;Here's what I realised: &lt;strong&gt;line-by-line review doesn't catch the problems AI code actually has.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What goes wrong in AI-written PRs
&lt;/h2&gt;

&lt;p&gt;The lines are usually fine. The structure is where it slips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A new helper that duplicates one that already exists two folders over&lt;/li&gt;
&lt;li&gt;A function that works, but ignores how the rest of the codebase does the same thing&lt;/li&gt;
&lt;li&gt;A change that's correct today and painful the day the data grows&lt;/li&gt;
&lt;li&gt;A test that passes, but tests the wrong thing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these show up in a diff. You only see them when you look at the code &lt;em&gt;around&lt;/em&gt; the change.&lt;/p&gt;

&lt;h2&gt;
  
  
  The questions I ask now
&lt;/h2&gt;

&lt;p&gt;When I review, I'm less "is this line right?" and more:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Does it fit?&lt;/strong&gt; Does it follow how the codebase already works?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who calls it?&lt;/strong&gt; What breaks if this changes?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is it tested?&lt;/strong&gt; And does the test check the thing that matters?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Will it scale?&lt;/strong&gt; Not just "does it run", but will it hold up?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Does it already exist?&lt;/strong&gt; Are we adding something we already have?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I can't answer any of these from a diff page. All of them are one click away in an IDE: go to definition, find usages, open the test.&lt;/p&gt;

&lt;p&gt;So I built a tool that moves the whole review into the editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review Lens: the review happens where you read code
&lt;/h2&gt;

&lt;p&gt;Review Lens is a free plugin for JetBrains IDEs (IntelliJ IDEA, PyCharm, WebStorm, GoLand). You pick a pull request, and it opens in the window you already have open.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnj1vi09yt3q3r8lsokkr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnj1vi09yt3q3r8lsokkr.png" alt="Changed files, the review bar, and GitHub comments under their lines" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You read it like your own code.&lt;/strong&gt; Full files, with the PR's changes marked in the gutter. Go to definition, find usages and your tests all work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The conversation comes to you.&lt;/strong&gt; Everyone's GitHub comments sit under the lines they're about. You reply right there, without opening a browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiy2vymo2euzxd9t1nytd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiy2vymo2euzxd9t1nytd.png" alt="Every comment on the PR in one tab" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You never lose your place.&lt;/strong&gt; Tick each file as you read it. The ticks sync with GitHub, and a file that changes after you've viewed it gets flagged.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You post once.&lt;/strong&gt; Finish review sends your comments and verdict to GitHub as one review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your work is safe.&lt;/strong&gt; Whatever you were working on is set aside before the PR opens, and comes back when you're done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not just for reviewing others
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Read your own PR first.&lt;/strong&gt; Before asking for a review, open your own PR and step through it commit by commit. You'll see how it grew, and catch the structural mistakes before your reviewer does. This is the habit I'd recommend most to anyone shipping AI-assisted code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep up with new pushes.&lt;/strong&gt; If someone pushes after you've reviewed, the PR tells you, and you review only what's new.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqkobgm2hdlm5kniflkts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqkobgm2hdlm5kniflkts.png" alt="Review only the commits pushed since your last review" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See the whole repo at a glance.&lt;/strong&gt; Every open PR is in one list in the IDE, the ones waiting on you first, and each one's comments are a click away.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;In IntelliJ IDEA, PyCharm, WebStorm or GoLand (2026.1+): &lt;strong&gt;Settings → Plugins → Marketplace → search "Review Lens"&lt;/strong&gt;. You'll need git and the GitHub CLI signed in (&lt;code&gt;gh auth login&lt;/code&gt;).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/35225-review-lens" rel="noopener noreferrer"&gt;JetBrains Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vatsarishabh22/review-lens" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt; (Apache 2.0)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Over to you:&lt;/strong&gt; what's the structural mistake you catch most in AI-written PRs? I'll start: duplicated helpers. Every time.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>git</category>
      <category>codereview</category>
    </item>
  </channel>
</rss>
