1019: LGTM, Ship It: The AI Code Review Problem artwork

1019: LGTM, Ship It: The AI Code Review Problem

Syntax - Tasty Web Development Treats

July 8, 2026

This episode tackles the growing pains of AI-assisted development, from the struggle of reviewing thousands of lines of agent-generated code to the mounting technical debt when teams merge PRs without meaningful human review.
Speakers: Scott Tolinski, Wes Bos
**Scott Tolinski** (0:00)
This company is merging 60 PRs per developer per week, and everything is a mess. I got a robot.
They are bringing in external dependencies into your projects. Is it worth it? Specific tips on AI and writing UI code. What are local AI models even? We're gonna be talking about all these and more in this Syntax Potluck. That's right, this is our Syntax Potluck episode where you bring the questions, we bring the answers, and if you have questions for us, head on over to Syntax.fm and ask a question for us and we will get to it on a future show. So, let's get into it.

**Wes Bos** (0:39)
Yep.

**Scott Tolinski** (0:46)
All right, so the first question today from Deep Sea Goose. I just listened to episode 1010 Wow, that's crazy, it were past 1010
Which was a Pollock episode with a lot of AI questions. The problem I'm struggling with is, whenever I ask an AI agent to create a component or any large piece of code, it takes me a considerable amount of time to understand what it wrote before I can make any changes. What advice do you have to help me better understand the code it generates? Yeah, well, okay. So this is a number of things. Sometimes the AIs, the when they write components, man, they write the craziest like rat's nest of function, calling a function, calling a function, and then throw it all in like an effect brained kind of way and really over rely on things like side effects and can make really understanding the code that AI writes a little confusing sometimes because it's quite simply not good or it is good and it's just different than how you would have read it. One thing that I like personally is having it write terse comments in line with the code. Just like one, it's documenting the code, two, it is easier for me to reason about in English than to reason about in some other way of authoring code that perhaps I'm not used to at that particular time. So if I'm trying to deeply understand the code, it's writing after it's written a large component. One, comments. Two, I like to lean on a lot of rules, particularly when I'm working with AI agents myself.
I heavily dictate the style at which they're allowed to write components in. In the svelte world, I'm saying, do not use effect. Don't even think about it. Side effects are almost never the right decision here. But because so many things happen in effects in React, it's always wanting to lean towards that. So I have a number of strict rules that I give it when I'm prompting. So therefore, when I go to read the code, it reads like the code I want to read.

**Wes Bos** (2:59)
Yeah, I think with UI code specifically, because that often dictates how it looks, I find myself drilling in a little closer with the UI. Whereas if I'm writing some back-end functionality, I have no problem for it to generate several hundred lines or maybe even a thousand lines of functionality. You get your database and everything.

**Scott Tolinski** (3:24)
Your is-object function.

**Wes Bos** (3:27)
Yeah, it's pretty good at actual subjective functionality. But when it comes to actually building out the UI, I drill in a little closer and spend a lot more time on it and do smaller changes because I think that's why a lot of these apps feel like crap is because the UIs on them are just absolutely awful. They technically work well, but how you use them, how you interact with them, and what they look like is often a lot to be desired. My recommendation here is just drill in and use it at a much smaller. Hell, even go back to using tab completion if you must for that type of thing. Other things you can lean on like Scott says is lots of rules in there. Example code prompts over if something should be duplicated or not. I find that that's a really interesting one where you have two things that have somewhat overlapping functionality. In some cases, you want to just duplicate them.
They're different enough that I just want to be able to have the code in this component and not have to factor it out into some reasonable thing. In other cases, yeah, you want to say, okay, here is a validation step or here's what we do when you upload an image.
That shares enough code that you want to bring that out and put it into a util library. I find the AI is not great at that. In that case, you should be making smaller changes so that you are more dialed into what is actually happening.

31 more minutes of transcript below

Feed this to your agent

Try it now — copy, paste, done:

curl -H "x-api-key: pt_demo" \
  https://spoken.md/transcripts/1000651996090

Works with Claude, ChatGPT, Cursor, and any agent that makes HTTP calls.

From $0.10 per transcript. No subscription. Credits never expire.

Using your own key:

curl -H "x-api-key: YOUR_KEY" \
  https://spoken.md/transcripts/1000775946038