← Back
SiTech Team⏱️ 3 წთ. საკითხავი

Using AI to Write Better Code — More Slowly, But with Higher Quality

Using AI to Write Better Code — More Slowly, But with Higher Quality

Why AI coding isn't just about rapid generation — how to use LLMs for PR reviews, bug finding, and code quality improvement. Nolan Lawson's approach: multi-model PR review for higher quality code

Two Sides of AI Coding

A lot of developers seem convinced that the point of AI coding assistants is one thing: writing low-quality code as fast as possible. "Vibe coding" — spew out barely-passable slop, open massive PRs, merge them unvetted. Ship it, fix it later. This perception has become so widespread that many dismiss LLMs as nothing more than "slop cannons."

But the thing is, LLMs are remarkably flexible. And you can use them just as effectively to write high-quality code more slowly. This statement seems completely obvious at this point, yet there are enough people convinced that LLMs are only good as slop cannons that it's worth making the opposite case.

If Mythos taught us anything, it's that LLM agents are really good at finding bugs. Throw them at a codebase enough times, and they will find so many bugs that you'll barely know what to do with them. And this isn't limited to specialized models — the latest public models from Anthropic and OpenAI are good enough to find plenty of bugs in an unscrutinized codebase.

Multi-Model PR Review

The problem isn't so much finding the bugs, but instead prioritizing and validating them. This is where Nolan Lawson's key insight shines: the more different models you throw at a PR review, the less likely you are to get hallucinations or bogus bugs. His Claude skill simultaneously runs a Claude sub-agent, Codex, and Cursor Bugbot to find bugs in a PR ranked by critical/high/medium/low. Once they're all done, it reviews their findings, rules out false positives, and writes a final report.

Bug Categories and Examples

In practice, this skill always finds tons of bugs in a PR, with a false positive rate near zero. The bugs range from critical security or correctness bugs — like SQL injection vulnerabilities or race conditions — to medium-level performance issues like unoptimized database queries, to low-level problems like misleading comments or missing edge cases.

What's particularly valuable is that the multi-model approach catches different types of issues. One model might excel at finding security vulnerabilities while another is better at detecting logic errors. By combining them, you get comprehensive coverage that no single model can achieve.

Lawson's 3-Step Workflow

The recommended workflow is elegantly simple:

  • Have an agent fix all the criticals and highs (with your guidance on the proper solution), then repeat until no criticals/highs remain
  • Skip highs/mediums where the juice isn't worth the squeeze — for example, 100 lines of code to fix a narrow edge case
  • Abandon the PR if it has so many criticals that you realize the whole approach is misguided

This workflow has a surprising side effect: it often finds pre-existing bugs in the codebase. Reviewers end up on tangential side-quests writing unit tests and fixing subtle flaws that predate the PR. This is the opposite of the "10x productivity" slop-cannon style, but incredibly satisfying for quality-obsessed developers.

📖 Read the original article on Nolan Lawson's blog