Post

I got an itch to play with some ideas I’ve had around code review. Also decided to completely vibe code it with Claude Code to become more familiar with the strengths and weaknesses of working like this. Idea is you can sort files topologically, and symbols modified in this PR are highlighted.

0 reposts16 likes

"The code was turbo-ass" might in itself be the best code review ever. I agree, I can't purely vibe code. I don't find it fun, and it doesn't really provide good results on anything non-trivial. Good as an assistant, not main driver.

It’s great at finding the root cause I’ve problems. At work I’ve found I can feed a Linear ticket into it and more often than not 15 mins later it comes back with where the problem is. It did a lot of super dumb shit for me in this project.

Yes. At work it basically replaced Google for me when I am stuck. Google is way worse on its own these days anyway. So I explain to the AI what the problem is, what I expect, etc - and that's usually enough to either pinpoint the issue or give me some direction.

Sorting topologically is an excellent idea here. Seems like a painfully obvious improvement in retrospect! As the best ideas are. How does it handle things that are not part of the module graph? Eg a random md file

It currently doesn’t, but one of the things I’d like to do is to group files into subgraphs if it finds multiple graphs without a connection.

I think you could do even better than topological sorting if you had enough static information and calculate all of the paths through the modified code, so you could review logical flows individually. It has potential to grow explosively but that could be a signal the PR is too complex.

I really wish GitHub cared about the PR review experience enough to experiment like this. I feel like it hasn’t changed in around a decade. I suspect with agents writing so much new code the review process is going to quickly become the bottleneck.

Vibe coding pros: - I was able to get a lot of chores done around the house while working on this. - Quite nice to give high level tasks and feedback then come back a few minutes later to see how it’s doing. - I don’t think I’d have been able to make the time to do this otherwise.

Cons: - If you let it do what it wants without reading the code it will produce a nightmare of cthulean proportions. - Very much not an interactive process. Everything takes minutes. Not long enough to focus on anything else but not short enough to feel good watching it happen.

Many times it got stuck on a specific bug and I tried half a dozen times to explain the problem and desired behaviour before having to go and look at the code. Invariably the code was turbo-ass and I spent an hour or so prompting it to be better. Tests and static analysis help a lot.

Ultimately I don’t think this is a good way to work. I think the optimum is somewhere in the middle. Delegation of tasks these systems are good at while I spend my time digging into the stuff it isn’t. I’m enjoying learning how to use them, though, and suspect they’re here to stay.

Are you familiar with plan mode? You activate it by shift+tab’ing in your Claude code session. I’d advise doing this always. You give instructions, then you carefully review the plan and make changes there, which means you fix half the issues before it even writes any code.

The plan can be made way quicker than the changes so feedback loop is much more fun, you don’t have to wait minutes to find out it’s done something stupid. Also were you on Sonnet 4 or Opus? Opus is noticeably better, though it is 10x as expensive.

I’m aware of plan mode but haven’t tried it yet. It’s on my list! I’m also mostly using Sonnet 4. I’ve heard folks say “Opus for planning, Sonnet for execution.”

Yeah, that advice reflects how impactful the initial plan can be. Same reason helping it build a plan that exactly matches what you want can make a big difference to output. Confess I’m just running Opus now, but that’s less ok if you’re employer isn’t paying the bill 😂