←back to thread

1013 points QuinnyPig | 8 comments | | HN request time: 2.897s | source | bottom
Show context
NathanKP ◴[] No.44561071[source]
Hello folks! I've been working on Kiro for nearly a year now. Happy to chat about some of the things that make it unique in the IDE space. We've added a few powerful things that I think make it a bit different from other similar AI editors.

In specific, I'm really proud of "spec driven development", which is based on the internal processes that software development teams at Amazon use to build very large technical projects. Kiro can take your basic "vibe coding" prompt, and expand it into deep technical requirements, a design document (with diagrams), and a task list to break down large projects into smaller, more realistic chunks of work.

I've had a ton of fun not just working on Kiro, but also coding with Kiro. I've also published a sample project I built while working on Kiro. It's a fairly extensive codebase for an infinite crafting game, almost 95% AI coded, thanks to the power of Kiro: https://github.com/kirodotdev/spirit-of-kiro

replies(27): >>44561401 #>>44561480 #>>44561505 #>>44561508 #>>44561540 #>>44561643 #>>44562248 #>>44562738 #>>44562815 #>>44562867 #>>44562880 #>>44563346 #>>44563915 #>>44563941 #>>44563988 #>>44563992 #>>44564153 #>>44564270 #>>44564551 #>>44565359 #>>44565453 #>>44565634 #>>44565909 #>>44566659 #>>44567132 #>>44568049 #>>44570644 #
1. apwell23 ◴[] No.44566659[source]
> almost 95% AI coded

I think its because you didn't have hard expectations for the output. You were ok with anything that kind of looked ok.

replies(1): >>44566791 #
2. NathanKP ◴[] No.44566791[source]
False. In order to maintain high quality I often rejected the first result and regenerated the code with a more precise prompt, rather than taking the first result. I also regularly used "refactor prompts" to ask Kiro to change the code to match my high expectations.

Just because you use AI does not mean that you need to be careless about quality, nor is AI an excuse to turn off your brain and just hit accept on the first result.

There is still a skill and craft to coding with AI, it's just that you will find yourself discarding, regenerating, and rebuilding things much faster than you did before.

In this project I deliberately avoided manual typing as much as possible, and instead found ways to prompt Kiro to get the results I wanted, and that's why 95% of it has been written by Kiro, rather than by hand. In the process, I got better at prompting, faster at it, and reached a much higher success rate at approving the initial pass. Early on I often regenerated a segment of code with more precise instructions three or four times, but this was also early in Kiro's development, with a dumber model, and with myself having less prompting skill.

replies(1): >>44566841 #
3. apwell23 ◴[] No.44566841[source]
> precise prompt

If there was such a thing you would just check in your prompts into your repo and CI would build your final application from prompts and deploy it.

So it follows that if you are accepting 95% of what random output is being given to you. you are either doing something really mundane and straightforward or you don't care much about the shape of the output ( not to be confused with quality) .

Like in this case you were also the Product Owner who had the final say about what's acceptable.

replies(2): >>44567427 #>>44575582 #
4. a1j9o94 ◴[] No.44567427{3}[source]
The above is saying more precise not completely precise. The overall point they're making is you still are responsible for the code you commit.

If they are saying the code in this project was in line with what they would have written, I lean towards trusting their assessment.

replies(2): >>44570184 #>>44570233 #
5. ◴[] No.44570184{4}[source]
6. apwell23 ◴[] No.44570233{4}[source]
I am not doubting 95% acceptance rate all. I've pure vibecoded many toy projects myself.

> in line with what they would have written,

point i am making is that they didn't know what they would've written. they had a rough overall idea but details were being accepted on the fly. They were trying out bunch of things and see what looks good based on a rough idea of what output should be.

In a real world project you are not both product owner and coder.

replies(1): >>44575608 #
7. NathanKP ◴[] No.44575582{3}[source]
> if you are accepting 95% of what random output is being given to you

I am not, and don't expect to be able to do that for many years yet. The models aren't that good yet.

I would estimate that I accepted perhaps 25% of the initial code output from the LLM. The other 75% of output I wasn't satisfied with I just unapplied and retried with a different prompt, or I refactored or mutated it using a followup prompt.

In the final project 95% of the committed lines of code in the published version were written by AI, however there was probably 4x as much discarded AI generated code along the way that was also written by AI. Often the first take wasn't good enough so I modified it or refactored it, also using AI. Over the course of using the project I got better at providing more precise prompts that generated good code the first time, however, I rarely accepted the first draft of code back from Kiro without making followup prompts.

A lot of people have a misguided thought that using AI means you just accept the first draft that AI returns. That's not the case. You absolutely should be reading the code, and iterating on it using followup prompts.

8. NathanKP ◴[] No.44575608{5}[source]
To be clear I did not have a 95% acceptance rate. I'm saying that in the final published repo, 95% of the lines of code were written by AI, not by me. I discarded and refactored code along the way many times, but I did that by also using the AI. My end goal was to keep my hands off the code as much as possible and get better at describing exactly what I wanted from the AI.