HN user

gonzan

17 karma

Building a GitHub AI assistant. Analysis issues, opens (and iterates on) PRs, does code review. https://kamaraapp.com/

Posts12
Comments16
View on HN

So there are going to be companies built on just an MCP server I guess, wonder what the first big one will be, just a matter of time I think

I think it absolutely makes sense. Especially if the bot and prompts that go in the code review are different from the bot/prompts that wrote the code. But sometimes even the same one can find different errors if you just give it more cycles/iterations to look at the code.

We humans (most of us anyways) don't write everything perfectly in one go, AI doesn't either.

AI tooling is improving so the AI can write tests for its own code and do pre-reviews but I don't think it ever hurts to have both an AI and a human review the code of any PR opened, no matter who or what opened it.

I'm also building a tool in the space https://kamaraapp.com/ and I found many times that Kamara's reviews find issues in Kamara's own code. I can say that I also find bugs in my own code when I review it too!

We've also been battling with the same issue greptile has in the example provided where the code suggestion is in the completely wrong line. We got it kind of under control, but I haven't found any tool that gets it right 100% of the time. Still a bit to go for the big AI takeover.

I agree with all this and it’s how I do it for web development but the time Apple/Google take to approve apps makes doing this for mobile apps quite risky since it’s hard to rollback.

I guess it goes to the point of the author that hard deployments on mobile makes mobile development harder

Not all reading is the same. If I tell an AI to write code that does X then checking if a provided code actually does X is a lot faster than writing it myself.

The way I use AI is to think at a high level how I want to implement something and then instead of writing the code tell the AI to write it by giving it specific instructions. Then proof-read it and fix the 1-2 things that it inevitably gets wrong.

I'm not reading some random code that I don't know what it's supposed to be doing. I'm reading the output of an instruction I gave that include some technical detail on how to implement it. Reading it and doing minor fixes is really fast.

I built a VS code extension a while back that I still use that wraps GPT-4 and writes code directly in my editor.

The method I used to choose which files to feed GPT-4 was embeddings-based. I got an embedding for each file and then an embedding from the instruction + some simple processing to pick the files more likely to be relevant. It isn't perfect but good enough most of the time in medium-sized codebases (not very large ones).

The one thing I started doing because of how I implemented this is make files shorter and move stuff into different files. Having a 1k+ LOC file is prohibitive because it eats up all the context window (although with 100k context window maybe less so). I think it's a good idea to keep files short anyways.

There's other smarter things that can be done (like embed and pass individual functions/classes instead of entire files) so I have no doubt someone will build something smarter soon. You'll likely not have to change your coding patterns at all to make use of AI.

Smol Developer 3 years ago

Reading code that you know what is supposed to do and testing it works correctly is a lot faster than writing all the said code. Reading is much faster than writing.

I also don’t mind writing this sort of code and I’m actually quite fast at writing it but AI is just on another level. Simple stuff like this it gets right almost every time and even does well on slightly more complicated stuff.

Smol Developer 3 years ago

That’s already how I’m building new projects, I mostly only write/reorder UI code since it’s what LLMs struggle with the most.

I’m building a VS Code extension that makes this easier by having context on the code and building features on top of it with no copy-pasting required.

The extension is called Kamara: https://kamaraapp.com/ If you’re interested in trying it out for building an MVP of one of your ideas I’m happy to send over some free credits

Smol Developer 3 years ago

I’m building an AI-powered coding tool and the approach I’m using now is based on embeddings.

We do pass the whole files, not just headers although that’s a possibility we considered and may try in the future. Looking at other code helps the LLM a lot in maintaining similar style and making sure the code is being used correctly. Sad reality is that interfaces are rarely descriptive and robust enough to code against them without looking at details.

We don’t pass the entire codebase because even small projects don’t fit, we use embeddings and some GPT assistance to decide which files are more likely to be relevant to complete the task and pass those. It doesn’t get it right 100% of the time, (we’re working on it) but it does most of the time.

Our approach allows us to write and edit several files with a single user provided prompt. It can build entire features in existing codebases as long as they’re not huge. A lot of the time it looks like magic honestly.

The link is https://kamaraapp.com if someone is interested in trying it and providing feedback I’m happy to send over some free credits :)

Hi! I'm Gonza, I've enjoyed playing League for a while but lately I've been playing more ARAM and less Summoner's Rift.

I found that most stats websites don't show stats for ARAM or show very limited ones, so I created ARAM Zone, a website focused on ARAM.

It's similar to other stats-based websites but I've tried to add my own extra twist to it. Specifically, for champion details and the champion tierlist screens I've divided champions by the main rune and first item bought. AP Malphite is VERY different than tank Malphite so I thought it was silly to group them as one. In Malphite's case, AP builds have 45-49% win rate and tank builds 55-60% win rate, which is very relevant info when deciding what to build!

You can also search for your Summoner name and see your personal stats on ARAM :)

Anyways, if there are any League fans here and you give it a shot let me know what you think!