AWS re:Invent 2025 - Spec-driven development with Kiro (DEV314) — Transcript
Full transcript
- 0:00Hello everyone. Thanks for making it.
- 0:02Today we are going to be talking about
- 0:07spec driven development with Curo.
- 0:10This is going to be a
- 0:14we're going to be doing a code talk here
- 0:16today. So I have my laptop set up. We're
- 0:18going to look at some code, but we're
- 0:19going to first go through some slides
- 0:21and I'll explain what we're up to.
- 0:23First, let's have a a little bit of an
- 0:25introduction. My name is Eric Hchett.
- 0:27I'm a senior developer advocate at AWS
- 0:30and today I have with me Nick Hill.
- 0:33>> Hey folks, I'm Nick Hill. Uh I lead the
- 0:35product team for Kira. Uh thank you all
- 0:38for coming here. This is after lunch.
- 0:39We're going to have a fun session. Hope
- 0:41you you won't need your coffee. Make it
- 0:44fun.
- 0:46Absolutely.
- 0:49So we're going to start with a few
- 0:51things. We're going to look at the
- 0:53history of Curo. So Nuel is going to
- 0:56jump directly into to that in a moment.
- 0:59We're going to talk about a little bit
- 1:01of spectriven development, the name of
- 1:03this talk and why I think everyone here
- 1:05should be using it with their agentic
- 1:07ideides today and we're going to
- 1:09specifically look at Curo and how that
- 1:11works with it. We're going to touch on
- 1:13MCP. Does anybody here use MCP servers
- 1:16right now?
- 1:18Okay, I see a handful. Let me ask you,
- 1:20who's using Curo right now?
- 1:23Okay, only a few. So hopefully by the
- 1:25end to end of this hour talk that I have
- 1:28convinced you all to try out Kirao and
- 1:30Spectdriven development
- 1:31>> and and uh just another followup who's
- 1:34uh who's used Kirao so far.
- 1:37>> Okay, a few more people.
- 1:39>> Okay,
- 1:39>> good to know.
- 1:40>> Good to know. And then this is a code
- 1:43talk so I see everyone has their laptops
- 1:46out or most people. We are going to jump
- 1:48on I'm going to jump on this laptop
- 1:50here. We're going to do a little bit of
- 1:50pair programming. So, we're going to try
- 1:52uh to create an app. Uh we're going to
- 1:55talk about it more in a moment, a job
- 1:56seekers app. We're going to use the
- 1:58spectriven development flow inside Curo
- 2:00and we're going to see how well it does.
- 2:03Uh and then we're going to talk about
- 2:04some of the features of how it works all
- 2:07together. And then I want to give every
- 2:09everyone here time to ask us questions
- 2:11at the end. So maybe uh 10 15 minutes to
- 2:15to for that.
- 2:18So those of So from this the hands that
- 2:21came up earlier sounds like a lot of you
- 2:23have not used much of Curo. So let me
- 2:26let me explain it before we get too much
- 2:27further. It's a new agentic IDE that we
- 2:32released in the last few months. It
- 2:34actually just went G or general
- 2:36available a few weeks ago and it's we're
- 2:41really proud of it. It's it's really
- 2:43based on this idea of spectrum
- 2:45development. Now you can do vibe coding
- 2:47but we really feel like spectriven
- 2:49development is what it makes it sets it
- 2:52apart from some of its competitors that
- 2:54maybe some of you have heard of. Uh when
- 2:56we released it, it was a total surprise
- 2:59to us. It really went viral. It got
- 3:01hundreds of thousands of downloads. We
- 3:03had to put up a weight list. Uh and then
- 3:05people found a way around the weight
- 3:07list. So we had to put even bigger
- 3:09barriers up. But we've been really happy
- 3:11with reception. We've gotten so much
- 3:13feedback on it and we've been making it
- 3:15even more uh better
- 3:18uh as as it's been going on as this time
- 3:20frame um in the last few months.
- 3:25So I'm going to kick it off to Nel to
- 3:28talk about the history of Kira.
- 3:32Cool. So I'm going to spend a little bit
- 3:33of time talking about this, but I want
- 3:34to jump I want to jump to the coding
- 3:36session fast. So uh the evolution of
- 3:38building software uh let's actually take
- 3:41a step back and talk about the overall
- 3:43editor space right ids got really
- 3:45popular because they provided a single
- 3:46tool chain where you could do things
- 3:49like have an integrated compiler view
- 3:51lint linting issues find uh de debug set
- 3:55breakpoints and it it offered a lot of
- 3:58benefits over you know traditional text
- 4:00text edit like code interfaces and so
- 4:03that that was kind of the first wave
- 4:05that got wide adoption
- 4:08And then in the last I'd say two years,
- 4:10we've had really like AI editors become
- 4:12a big thing. It first started with code
- 4:15completions. So like you'd be in a file,
- 4:17you type like a hash or you type two
- 4:20slashes and you you'd be like do this
- 4:22and then it would generate like a
- 4:23function for you. And then that quickly
- 4:25evolved to the more agentic or like you
- 4:28know I call it like the chat GPT like
- 4:29experience where you you input natural
- 4:32language and the agent's able to edit
- 4:34multiple files.
- 4:38The fundamental shift that's happened
- 4:40and we see this with all our customers
- 4:42who are who've been using Kirro and and
- 4:45Q developer in the past was that uh
- 4:48unlike previously where the developer
- 4:50drives and provides I think with AI
- 4:53editors the developer steers the AI
- 4:55agent to author and review code the
- 4:57developer is still very much in the in
- 4:59the in the driver's seat but it's a
- 5:02different workflow where you can
- 5:03actually use AI to kind of accelerate
- 5:05your workflow.
- 5:07But you're still responsible for the
- 5:09code. That's the important bit.
- 5:14Vibe coding. This term got really
- 5:15popular in the last year year and a half
- 5:17where it's essentially covers that this
- 5:19workflow where it goes developer writes
- 5:21a prompt, AI generates code, you write
- 5:23another prompt and then you keep going
- 5:25in this loop and cycle. And this has
- 5:27worked really well for a lot of people
- 5:30to be able to prototype things that
- 5:31would otherwise take weeks to set up.
- 5:34But it's also got its uh challenges. Um
- 5:38Slack threads for example, I use Slack
- 5:40threads as a good analogy. So if you
- 5:41have a a Slack convers, we've all been
- 5:43in Slack conversations where like the
- 5:45message thread goes to like a 100
- 5:46messages and you know you leave that
- 5:49thread with like okay, what did we take
- 5:50away? Uh why why are we making the
- 5:53decisions we're making? And and
- 5:54sometimes that's that's just lost in
- 5:56that context. And that's that's one of
- 5:58the challenges you have with vibe coding
- 6:02is that it kind of completely skips the
- 6:04traditional SDLC life cycle, right?
- 6:07Historically, when we build features,
- 6:09we've always started with artifacts,
- 6:10right? Require we talk we talk about
- 6:12requirements, we we write design docs,
- 6:14we talk about trade-offs, and we meet
- 6:16and then and then we start. Whether it's
- 6:18waterfall or agile, you're you're doing
- 6:20you're doing that both at different
- 6:21scales.
- 6:25So what we did is we looked at we really
- 6:27talked to a lot of our power users
- 6:29internally in the company and externally
- 6:31and we saw that they had already made
- 6:33this organic shift to planning before
- 6:35they actually went about creating or
- 6:38generating code and planning up front
- 6:41really helped the models focus and
- 6:42produce better output. So what we did is
- 6:45we built a a firstparty workflow in for
- 6:49planning called specdriven development.
- 6:51And normally this this time I demo it,
- 6:54but we're going to spend so much time
- 6:55talking about it that I'll just move
- 6:56move ahead and get get to that quickly.
- 6:59But really specri development what it
- 7:00introduces it introduce a workflow for
- 7:03going from your initial requirements to
- 7:05to an output. It's a really structured
- 7:07workflow where you start with a you
- 7:10start with requirements.
- 7:11Once you your requirements are done,
- 7:13there's a design. So you actually look
- 7:15at your design file and then you get to
- 7:17a task list and then you implement that
- 7:18task list. And you can go back and forth
- 7:20in this loop um till you and end up with
- 7:24an with an output you're happy with.
- 7:29And once your code is generated a big
- 7:30another big problem in this space the
- 7:32term AI slop has become quite common now
- 7:36is where the AI generates a lot of code
- 7:38and there's you once you generate code
- 7:40there like there are no processes to
- 7:42actually
- 7:43a lot of tools don't actually have
- 7:45processes to review things. So we have
- 7:46hooks built in and what hooks allow you
- 7:48to do is we have a whole bunch of life
- 7:50cycle events in the IDE such as file
- 7:52save, file create uh and we're adding
- 7:55adding a bunch more uh in the next few
- 7:58weeks that actually allow you to
- 7:59validate changes. So an example of a
- 8:02hook that we use in our docs repo uh is
- 8:06is a c effectively like a c spell
- 8:08checker but it also checks for tone and
- 8:10style. Right? So our workflow when we're
- 8:14writing docs for new features is that we
- 8:16take our initial requirements doc. We
- 8:18feed that into curo and it it structures
- 8:21our docs but then that we have hooks
- 8:23that help actually say hey did like it's
- 8:25almost like a separate thread to think
- 8:27about the work that was created that
- 8:29help help us set up rules. Another good
- 8:33example is for if you're building UI
- 8:34components, you can have things like,
- 8:36you know, you have a React component,
- 8:38you want it to follow a single single
- 8:40responsibility principle, right? So it's
- 8:42a single focused, you can use a hook for
- 8:44that.
- 8:47And rather than me keep talking about
- 8:49this, why don't we actually just go
- 8:51ahead and build something together? And
- 8:54we're going to pair program. Though
- 8:55there's only one chair, so I'm going to
- 8:56peer over Eric while he's programming.
- 9:01>> Sounds good. All right, let's get this
- 9:03set up.
- 9:07Log in.
- 9:10One second.
- 9:20Okay.
- 9:22So, uh we want to create an app with you
- 9:25guys today. So before we started, me and
- 9:29Nikil came up with this Figma. So do you
- 9:32want to explain a little bit about what
- 9:33it is?
- 9:33>> Yeah. So just FYI, after this demo,
- 9:36we're both quitting our jobs and this is
- 9:37going to be our new business cuz we
- 9:39really like the idea. Um but the core of
- 9:42it is a job seekers app. So uh problem,
- 9:45here's the elevator pitch. So problem
- 9:47people looking for jobs outside of just
- 9:49prepping for interviews, there's a lot
- 9:51more than just goes into like do you
- 9:53know the answer. It's like what's your
- 9:54what's your style? What's your tone and
- 9:57how do you actually prep? People use use
- 9:59software tools out there, but like you
- 10:01can actually talk to another person and
- 10:02there's no experience where you get
- 10:04feedback on how how you're doing on your
- 10:06interviews. So that's the core of the
- 10:08idea and there's you can imagine a lot a
- 10:11we can build a lot of things around it
- 10:12around it. So the way Eric
- 10:15[clears throat] and I started this is we
- 10:16just hopped on a quick call and we
- 10:18whiteboarded a flow where we said okay a
- 10:21user logs in uh they set up a profile.
- 10:24Uh and once they set up a profile they
- 10:26can actually start interview prep and a
- 10:28very simple MVP flow would be okay you
- 10:31start start my interview prep and you
- 10:33you go in this question answer flow. So
- 10:37you are you're get you're asked a
- 10:38question, you can record your response
- 10:41and that goes back and forth and at the
- 10:44end we deliver uh an overview a
- 10:47qualitative overview of how you did with
- 10:50quantitative uh with a quantitative
- 10:52score.
- 10:54Excellent.
- 10:56So we have this picture that this Figma
- 10:59that we created and here is KO. Just for
- 11:02those of you who have never used it, let
- 11:04me give you a quick tour. I have a a
- 11:06brand new VIT app that I just started
- 11:09this morning that we can start off with.
- 11:12It's basically hello world. So, we're
- 11:14just going to keep it to the front end
- 11:15for now, but you can imagine some of you
- 11:17DevOps and and backend engineers, you
- 11:18can imagine we might have a backend
- 11:20component to this, too. Uh, I just
- 11:23wanted to start with this also has
- 11:24Tailwind CSS installed for our design
- 11:28graphics. Now, on the on this side here,
- 11:30we have this little ghost. I haven't
- 11:32really talked about this. This is our
- 11:34Curo ghost. It's our mascot. If you have
- 11:36been around the Venetian, we have the
- 11:39Kira House. Anybody seen the Kira House?
- 11:41That looks like a haunted house. Yeah, I
- 11:43would recommend everyone to to go
- 11:45through it. It's actually pretty fun.
- 11:46And then at the end of it, there's
- 11:48actually a code to get a,000 free
- 11:52credits. 500 thou 500 or a thousand. Um,
- 11:55so check that out. You can go through
- 11:57through it at any time. Uh so this this
- 12:00this ghost here brings up a menu on our
- 12:04left hand side. Agent hooks, agent
- 12:06steering, specs, and MCP. So hooks, we
- 12:09kind of explained it already. It's a way
- 12:11you can essentially have things work in
- 12:15the background that are triggered on
- 12:17certain events. So imagine that you save
- 12:19a file, delete a file, you can have
- 12:21things happen. One common scenario is
- 12:23you might update documentation on every
- 12:25file save or you might uh do some
- 12:28localization and we actually even have
- 12:31pre-built ones you can kind of take all
- 12:33take over uh without having to write
- 12:36anything yourself and you can also have
- 12:38it specify certain file types. We're
- 12:40adding as NIL said more flexibility with
- 12:44this agent hooks in the future but I
- 12:45just want to give it a shout out. We've
- 12:46also seen very creative people from the
- 12:48community do this in all sorts of ways
- 12:51for their git workflows
- 12:54for testing all sorts of things. Uh
- 12:57agent steering is more like a rules file
- 13:01that you can put in maybe you have
- 13:03certain coding standards uh or design
- 13:06standards that you want to include. You
- 13:08can put it in steering files. I can also
- 13:10just have it automatically generate the
- 13:12steering files for me. And so what this
- 13:15does is it looks inside this folder
- 13:18inside my application and then it
- 13:20creates a few files. You can see here
- 13:22it's already created the product and the
- 13:24tech file. And these are just based on
- 13:27what's in the app right now. So if you
- 13:28have an existing application and you
- 13:31want to kind of play with Curo today,
- 13:34you can put this in there and have it
- 13:36generate the steering files and then
- 13:37that'll get added to the context every
- 13:39time you start talking to the IDE.
- 13:43>> Maybe you can you can show what that
- 13:45looks like, what those files look like.
- 13:46>> Yes, that's a good idea. So here is what
- 13:48the product is. It's not that much
- 13:50because we really haven't added anything
- 13:52yet, but it's a Vue3 web application
- 13:54with TypeScript and Vit. I use a script
- 13:57setup. I don't know if anybody's a
- 13:59Vue.js fan, but that's essentially how
- 14:02they are created. The components type
- 14:04safe. We have the structure. Right now,
- 14:06it's just kind of the hello world out of
- 14:08the box structure, but it's nice it's in
- 14:10here. Uh, and then here's some tech,
- 14:14which I just scroll down, but yeah, the
- 14:17frameworks, TypeScript, V, everything
- 14:19you would expect in there. And you can
- 14:22keep this right now. This is just a
- 14:24moment in time snapshot of your current
- 14:27application. However, you can be
- 14:30creative with those hooks and maybe you
- 14:31have it continuously update those
- 14:33documents and those can be shared with
- 14:35your product teams or whoever else. And
- 14:37of course, uh I heard I saw some hands
- 14:40earlier. MCP my I'm I'm a huge MCP fan.
- 14:43It's getting there. It's even getting
- 14:45even better. I've seen some some stuff
- 14:46coming out recently. But this is where
- 14:48you would set uh your MCP servers. In
- 14:51this case, I have contact 7. I have AWS
- 14:55loves MCP servers. If you don't know, we
- 14:58keep continuously adding more for
- 15:00different services and different
- 15:01products. Kind of the catchall one is
- 15:04the docs one. I'd recommend to try that
- 15:07one out. Uh but if you have a specific
- 15:09use case, you can install like the MCP
- 15:11server for Bedrock agent core is one of
- 15:13them. And it's just a few lines. We in
- 15:15fact just recently uh added a way to add
- 15:19MCPU servers with one click. So, if you
- 15:22go to our curro.dev, I'll show that in a
- 15:24little bit. There's a little there might
- 15:26be a little button there. You click on
- 15:27it, it'll just automatically install it
- 15:30inside your inside kuro. And then we are
- 15:33diligently going to many of your
- 15:35favorite open- source MCP GitHub
- 15:38repositories and updating it to add the
- 15:40little oneclick install.
- 15:42That is still working. I'm still working
- 15:44on that. And then, of course, I have
- 15:46Brave Search, Bedrock, Agent Core. So
- 15:49that that's kind of a little bit of of
- 15:52of how of some of the features of curo.
- 15:55But I know the name of this talk is spec
- 15:57driven development. So let's let's dive
- 15:59into that. So once again I on the right
- 16:02hand side I have two boxes here. I have
- 16:04vibe which I I just love to vibe. It
- 16:06does really good job at doing that or
- 16:08spec uh agents. Right now we support
- 16:11claude sonet 45 4 um 4.5 opus haik coup.
- 16:17So, we kind of recommend just to start
- 16:20off with auto because we pick behind the
- 16:22scenes the best model that you should be
- 16:24using. I'll just leave it at auto. We're
- 16:27adding more and more all the time. It's
- 16:29definitely in the back of our heads of
- 16:31adding more models for those of you who
- 16:33are fans of other ones. Uh, sit tight.
- 16:36So, but let's write spec. Uh we actually
- 16:39had a before I well let's let's go ahead
- 16:43and and start it and then I'll I'll give
- 16:45you a little story I had the other day.
- 16:47So uh here is the diagram that me and
- 16:51NIL came up with. I'm just going to make
- 16:53a snippet of it a screenshot
- 16:57and I'm just going to paste it here and
- 16:59let's give it a prompt. So I'm going to
- 17:01choose spec here and I'm gonna say
- 17:03please use this picture and create a job
- 17:07seekers app.
- 17:10Use the picture as a
- 17:13um uh as the design.
- 17:18I don't know. I always I always like to
- 17:20be uh explicit and
- 17:23I like to be polite to AI too. So you'll
- 17:25see me using please and thank yous. I
- 17:28would do that too.
- 17:30Okay, so now it's going in and it's
- 17:33taking a look at those steering docs
- 17:34that we just created and it's going to
- 17:37create this job interview preparation
- 17:39flow. And it's starting off with the
- 17:41requirements document. And I'm going to
- 17:43have Nicole really walk me through on
- 17:45what his idea is and how properly you
- 17:49could [clears throat] look through a a
- 17:50requirement stock.
- 17:52>> Cool. Awesome. Let me let me actually
- 17:54switch to the preview view of that
- 17:55requirement stock.
- 17:56>> Okay, sure.
- 17:56>> You don't mind?
- 17:58>> Here, I'll do it. Okay, go ahead.
- 18:01>> All right.
- 18:05So, as you can see, uh, we took Kira
- 18:07took
- 18:08>> We're going to switch. We're going to do
- 18:09a little
- 18:10>> Yeah, we're going to play a little
- 18:11musical chairs.
- 18:12>> Mhm.
- 18:13>> So, as you can see here, Kira took the
- 18:14initial
- 18:16screenshot that we had and actually
- 18:18unpacked that into a format. And I just
- 18:22realized Eric has an o opposite scroll
- 18:24from me. So, it's like really this
- 18:26throws me off when I'm trying to scroll.
- 18:29uh but it it unpacked our initial prompt
- 18:31to a set of requirements and the way we
- 18:33define requirements is we we define them
- 18:36as a user story and every user story has
- 18:39acceptance criteria.
- 18:41Now this is actually something we built
- 18:42we were doing inhouse in in Amazon in
- 18:45the in our teams the way we worked. So
- 18:46we took the same workflow that we had uh
- 18:50on our team and we made it available
- 18:53broadly and the benefit of a user. So
- 18:56user story is like the human readable
- 18:58way that if we want to say hey do we
- 19:00want what's what feature do you want to
- 19:01support? So this one's logging in so
- 19:03that I can access my application profile
- 19:06management whereas the acceptance
- 19:08criteria are the actual details. So if
- 19:10you you were to sit and say, "Okay,
- 19:12let's go and build this profile
- 19:14management feature, what are the
- 19:16nitty-gritty details that I need to
- 19:18actually think about?" So the the first
- 19:21pass I typically do is when I'm when I'm
- 19:23building something with hero is that I
- 19:25will look at the user stories and see if
- 19:27they're the user stories that I actually
- 19:28want to build. Um, and I'll start there
- 19:31before I get into the acceptance
- 19:32criteria. So if we start at first one's
- 19:34about logging in,
- 19:37the second one's about profile
- 19:38management.
- 19:41The third one's about an interview prep
- 19:43session.
- 19:47This is about viewing and responding to
- 19:49answers. And like this is very
- 19:52important.
- 19:55Okay. This is about navigating through
- 19:57multiple questions.
- 20:01This is about the analysis and the
- 20:02result.
- 20:06This is about trend analysis.
- 20:08Requirement seven.
- 20:10Requirement eight is about requirement
- 20:13eight is my least favorite requirement
- 20:14because it's really nothing. Like what
- 20:16do you mean I have a clean and intuitive
- 20:17interface? Uh so what I'm going to do is
- 20:21actually like simplify this cuz I've I
- 20:23just thinking through this I think that
- 20:24demoing all here is not that important.
- 20:27So, I'm just going to say um please
- 20:30remove requirements
- 20:33one, two,
- 20:38uh we want three, we want four,
- 20:43we want five, we want six. I don't think
- 20:46we necessarily care about state
- 20:48persistence either right now. We just
- 20:50want to get something up and running.
- 20:52seven and eight
- 20:55as they are not needed for our MVP
- 20:59scope. Look, I use please as well. I
- 21:02never use please.
- 21:04I'm telling you. Although some people do
- 21:06say it's just waste tokens, but I don't
- 21:08know
- 21:11the and this is something I really think
- 21:13even if you're not going to use Curo
- 21:15after this talk, just being able to have
- 21:18your ID or having your IDE AI IDE like
- 21:22go in uh and
- 21:25create these documents, but then also
- 21:27kind of going back and forth because
- 21:29oneshotting this may not give you
- 21:31exactly what you expect at the end of
- 21:33the day. So it's it's almost like a you
- 21:36kind of go back and forth process.
- 21:38>> I think the way I've seen seen actually
- 21:41talking to some customers is that you
- 21:43know the initial whiteboard we did right
- 21:46>> some if like as a developer I might
- 21:48prefer to just uh vibe code that right
- 21:51like just cuz then it forces me to think
- 21:53about my interfaces and things like that
- 21:54that I'll need and then enter something
- 21:57more structured. So that is also a
- 21:58workflow that uh we we we support right.
- 22:02So I think hopefully these requirements
- 22:05look good. I think for the interview
- 22:07questions we should just limit for
- 22:09interview questions limit to three.
- 22:16Yeah. So it should be just a quick I
- 22:18imagine it you go in it asks you a
- 22:21question and then you use your
- 22:22microphone explain it then it goes to
- 22:25the next question and then it does an
- 22:26does an analysis at the end.
- 22:29>> All right. I I think this is good. Um
- 22:36yeah uh so now that the requirements are
- 22:38done we can go ahead and move to the
- 22:41design phase. So what what's going to
- 22:42happen now is that it's going to take
- 22:44these requirements and generate a design
- 22:45dock based off your existing code base.
- 22:49And Eric and I will play mult uh musical
- 22:52chairs again.
- 22:54And for those of you who are thinking
- 22:56well my PM does this right I don't have
- 22:58to write requirements. Trust me, maybe
- 23:00you take what they give you to put in
- 23:02here so you can then really create the
- 23:05feature or product that they're looking
- 23:07for.
- 23:10So yeah, now it's creating the design
- 23:12documents, kind of reading what we've
- 23:13done and the updates, the requirements
- 23:16to go to this next phase, the design.
- 23:19Uh, while it's working, I can also click
- 23:21here to kind of get an idea of of the
- 23:24state of it. Uh, while it's working, one
- 23:27thing I was going to say with the spec
- 23:29and the vibe code, I played a game on
- 23:32stream the other day. I get to I get to
- 23:34have so much fun. We we actually had
- 23:37another person on and we decided like
- 23:39which task would I use vibe coding
- 23:41versus spec mode. And it's actually
- 23:43harder than you would imagine to figure
- 23:45out which one is is which one you should
- 23:48use. Uh, I usually say if it's something
- 23:50that needs a little bit more
- 23:51forethought, it's a larger feature, then
- 23:55spec mode is good. And I also I love
- 23:57just having this documentation
- 23:59afterwards I can look at.
- 24:01For those of you pink, for those of you
- 24:03eagle-eyed on the screen right there, it
- 24:05says, can, by the way, can everybody see
- 24:07this screen? Do I need to make the font
- 24:09bigger in the back? Can you see it?
- 24:12Okay, I see thumbs up. Okay.
- 24:15>> So what it did now is actually it
- 24:17created something called property tests.
- 24:19I want to
- 24:20>> Yeah. Why why don't we start with the
- 24:22just just the architecture, right? Like
- 24:24it just
- 24:25>> work down to see if it's the actual
- 24:27system we want and then I think let's
- 24:29get to properties
- 24:31and
- 24:31>> yes that's a good point. I'm so excited.
- 24:34I want to jump into property testing but
- 24:36we'll wait on that. So here is the
- 24:38design document that it created. It also
- 24:41gave me a nice summary of what it did uh
- 24:44and and I can move on from there. And
- 24:46it's asking me, hey, does this look
- 24:47good? We can move to the next phase. But
- 24:49I can look here and kind of take a look
- 24:51at the highle architecture. We have view
- 24:55uh nice little asky art here. But we do
- 24:57use mermaid diagrams. If those of you
- 24:59are familiar with that, it works really
- 25:00great in markdown. So we have start
- 25:02screen question results. Okay, I'm
- 25:04assuming this looks good. I mean just it
- 25:06does look good. Local storage to to
- 25:08share everything. web audio API that'll
- 25:11really help us when we record the audio
- 25:12from us when we're answering these
- 25:15questions.
- 25:17Uh this is kind of how I at Amazon we
- 25:19are a AWS we're a very document-driven
- 25:23culture. I've been in many design doc
- 25:25reviews and we actually write our design
- 25:27documents very similar to this. We have
- 25:29interfaces that we outline. Uh if you
- 25:32ever want to see how kind of how the
- 25:36sausage is made when you um want to see
- 25:39how some of our services are designed,
- 25:40kind of take a look at these design
- 25:42documents. So I have question response
- 25:45the component start screen view.
- 25:47>> Uh so just under response, can you just
- 25:49scroll up for a second? What is session
- 25:52state capture right now?
- 25:54>> Questions responses.
- 25:56>> Okay, gotcha.
- 25:58Yes.
- 26:00Oh, and then we have question
- 26:03screen.view.
- 26:04So, think these are all our components
- 26:06that it's going to create. Our score,
- 26:09some prompts, question bank.
- 26:12It's going to be just a hard-coded file
- 26:14for now.
- 26:15>> So, is this is this the actual file or
- 26:17is it just going to use generate its own
- 26:19questions?
- 26:20>> It looks like uh it's a static array in
- 26:23the application for the MVP. We'll use a
- 26:25predefined set of common interview
- 26:26questions. So I'm assuming this is
- 26:28>> just the structure.
- 26:29>> Yeah, the structure of it, but could be
- 26:32very similar to these or these. Here's
- 26:35our stored session. And then the last
- 26:38part we'll come back to it, but that's
- 26:39the correctness properties.
- 26:42One thing I I noticed out of here that's
- 26:44missing is it doesn't really have any
- 26:47information about how if we're recording
- 26:50audio from our laptops, how is it going
- 26:53to
- 26:55take that audio and transcribe it? So I
- 26:57want to add that feature into it.
- 27:00>> Yeah. And I think there's one more thing
- 27:01missing too. So once you transcribe it,
- 27:04how is it actually like how are you
- 27:05going to get the results? Was that was
- 27:06that captured?
- 27:08>> Yeah, that's a good point. So results,
- 27:11we have a session. We have a response.
- 27:13>> Guessing we're going to use AI for the
- 27:14result generation.
- 27:15>> Yeah, we have a results screen with a
- 27:17score number, but it's not really like
- 27:19this isn't really showing exactly what
- 27:22we want, right? We want a little bit
- 27:24more information.
- 27:26Sometimes I just do a quick search, too,
- 27:28if I can't find it. Yeah, test complete
- 27:30results. All right. So, what I assume we
- 27:32probably want to add in here is a way
- 27:34for AI to go in and and do some
- 27:38analysis. So, let's add these two
- 27:40things. We'll say, "Please transcribe
- 27:44the text as the user speaks it." Also,
- 27:50let's
- 27:52add additional analysis.
- 27:56Additional
- 27:57that's that's nice thing about uh this.
- 28:00I don't have to type right. additional
- 28:01analysis.
- 28:02>> That's actually my favorite feature
- 28:03about AI that I never have to like if
- 28:05I'm I make a typo, I never go back and
- 28:07fix it.
- 28:10>> Exactly. With the results uh using Let's
- 28:13just And we could use our favorite
- 28:14Amazon Bedrock, but let's use Claude
- 28:17Claude um
- 28:19>> SDK
- 28:19>> SDK
- 28:23uh Claude's AI SDK.
- 28:28All right. So, now it's going to kind of
- 28:30understand what we want and make some
- 28:32updates to our design.
- 28:34And it's actually even going back to our
- 28:37requirements and making some additional
- 28:40changes there. So, it's smart enough to
- 28:41know like, hey, I know you're updating
- 28:42the design, but the requirements aren't
- 28:44quite what you mentioned. Now, let's go
- 28:45and update the the requirements as well.
- 28:49So, now we have uh a microphone button
- 28:51that you can click on and now it it will
- 28:55transcribe it and it will keep going
- 28:59from there.
- 29:01There's also, I didn't mention this at
- 29:03the beginning, but
- 29:05we do have uh an idea of checkpointing.
- 29:07So, if you're going through this process
- 29:09and you were like, "Oh my goodness, the
- 29:11it's way off what I expected," you could
- 29:14just click this checkpoint button or in
- 29:16this case the restore button and it
- 29:18would restore back to its previous
- 29:20state. So, this means that you can
- 29:22easily go back and forth instead of
- 29:24having to rely on your version control
- 29:26system and revert the changes and go
- 29:28back
- 29:30Uh, so it also kind of makes little
- 29:33changes. It might find an error. It kind
- 29:34of goes back and forth and updates it.
- 29:36So now it's creating it's updating the
- 29:39design document based on our suggestions
- 29:42and we can see what it's doing. Yeah. So
- 29:45now here we have the transcribed text in
- 29:48our interface as we expect it would be
- 29:50there and some better analysis.
- 29:53It's also adding in.
- 29:54>> So what's the analysis? Go back.
- 29:56Analysis result. Okay,
- 29:58>> got it. So that's the that's what'll
- 29:59capture the
- 30:01the the results. There wasn't really a
- 30:04results interface before, was there?
- 30:07No. Mhm.
- 30:11Perfect.
- 30:13I love how happy the
- 30:16gentic ids are. Oh, perfect. I've
- 30:17updated the design document. So we can
- 30:20now take another look at it
- 30:24and we can say okay now we
- 30:26>> could add the transcription service to
- 30:27the to the system diagram too.
- 30:30>> Let's see. So we have start screen
- 30:32question result recording component
- 30:34local storage web audio ID. Oh says
- 30:36speech detects
- 30:37>> and it added the cloud AI too.
- 30:40>> Perfect.
- 30:41Perfect. All right.
- 30:42>> Honestly when when this system diagram
- 30:44looks good I'm like yeah looks good to
- 30:45me. Let's move forward. LGTM.
- 30:49All right, let's move to the next part.
- 30:52So now we have we have taken this idea
- 30:56that we had we we updated the
- 30:57requirements went into the design and
- 31:00now we are going to the last phase which
- 31:02is the task. Well, I guess it's more
- 31:04like the second to last because once we
- 31:06have list task we need to implement
- 31:08those tasks and there's ways we can do
- 31:10that as well.
- 31:12And this workflow is um there's a
- 31:15actually a lot of feedback we've gotten
- 31:17on this workflow on improvements we can
- 31:19make. But in general it's pretty
- 31:21flexible because it's all built in
- 31:22markdown. So you see there's like this
- 31:24refine button on the top. So what we
- 31:26also have a flow is if you go and like
- 31:28make a manual edit. You can refine that.
- 31:32Clicking refine will basically take that
- 31:33edit and and kind of introduce
- 31:36integrate it into the rest of the design
- 31:38doc. So if you do that in the
- 31:39requirements, it'll generate like the
- 31:40user story in acceptance criteria in
- 31:43years format which we'll talk about. Um
- 31:46and you can same thing on the design and
- 31:48actually even same thing on task list.
- 31:49So like let's say you've done three or
- 31:51four tasks and you're like hey I
- 31:53actually want to change something cuz
- 31:55often this is in real life right we
- 31:57implement four t four tasks and we're
- 31:59like hey actually like now I want to
- 32:00change something cuz it didn't this is
- 32:02not what I wanted to do. you can go and
- 32:03make changes out of band and and
- 32:05clicking the update tasks will refresh
- 32:08uh the will refresh. So Kira will look
- 32:11at your codebase and actually see what's
- 32:12done and and uh update the the upcoming
- 32:16tasks as well. So now it's at a part
- 32:19where yeah we have this task list of all
- 32:22these tasks uh and we also have an
- 32:24option to keep the optional tasks or
- 32:26make them all required. And here are
- 32:28these property based testing uh which
- 32:31are all optional right now. Let's what
- 32:34do you think Nikl should we just keep
- 32:36all optional tasks for fast?
- 32:38>> Yeah, let's just keep it optional test.
- 32:39This was actually a flow a lot of people
- 32:40asked us when we we didn't have this
- 32:41flow when we first launched but um what
- 32:44was happening was that for every feature
- 32:46you had a lot of unit tests and people
- 32:48sometimes wanted to see the see the end
- 32:50product before they get to the tests but
- 32:52they wanted the test. So we introduce
- 32:53this flow to keep tasks in this uh keep
- 32:56tasks spelled out but set to optional by
- 33:00default.
- 33:03>> Okay. So
- 33:03>> should we take a look at the task list?
- 33:05So we can do the same thing here. We can
- 33:06refine this task list as well now. So uh
- 33:09is it can we see like uh I keep
- 33:11scrolling down. So you got create the
- 33:13data models, implement audio recording
- 33:16service,
- 33:19implement response validation storage,
- 33:22the AI integration. One thing you may be
- 33:24thinking about, hey, I have this list of
- 33:26tasks, but I want to get to something
- 33:27like right away that I could test.
- 33:30So another idea too is we could refine
- 33:33this list and reorder it.
- 33:36>> Yeah, let let's ask I I I think so. So,
- 33:38I think let's let's ask Hero to
- 33:41like I'd say prioritize getting
- 33:44[clears throat] an MV how how should we
- 33:46frame this? Prioritize getting an MVP
- 33:49scope together by task five,
- 33:53right? So, we have something to see.
- 33:57There's a product there's like a product
- 33:59analogy here where like you when you're
- 34:00building a car you first start with a
- 34:02skateboard and move to a bike and then
- 34:04build a car or you can choose to build
- 34:06the wheels you can build the engine and
- 34:07then stitch together stitch together
- 34:08everything at the end. The better way to
- 34:10build a product is is you you build
- 34:12interim steps so you always have
- 34:15something that's workable,
- 34:18right? Yeah. This is very flexible. We
- 34:21can kind of move these tasks around. And
- 34:23I kind of like that idea of getting to
- 34:26the first five tasks that has an MVP we
- 34:29can show you, especially in this time
- 34:30short time we have together today.
- 34:33So that I think that that would work
- 34:35well. I also sometimes just have it
- 34:38condense tasks down. Like if I see it
- 34:40has like 25 tasks, I'll be like, "Whoa,
- 34:43why do we have 25 tasks? Can you just
- 34:45can you make it into like 10 tasks?" And
- 34:47then it'll kind of group some more
- 34:48together. or some people who does test
- 34:51first development who who writes their
- 34:53tests first.
- 34:55Okay. All right. A couple people over
- 34:57here.
- 34:58>> No one likes tests.
- 35:00>> So maybe that's the workflow that you
- 35:01like. Then you can set this up. Write
- 35:03all the tests first. Let's do test first
- 35:05driven development.
- 35:07All right. So we have now we have I
- 35:10think for the for this uh a core MVP
- 35:13with one, two, three, four, uh five
- 35:16tasks. even has task two or phase two.
- 35:19So let's see
- 35:20>> is there UI state captured in the first
- 35:23five
- 35:23>> setup dependencies create core data
- 35:25types implement application state
- 35:27management implement audio recording
- 35:28speech test implement response
- 35:30validation storage
- 35:33create start screen component. Oh, so it
- 35:35looks like the first phase may not even
- 35:37have the UI.
- 35:39>> Should we should we ask it to have some
- 35:42UI? Yeah. Adds
- 35:45uh UI to the initial phase
- 35:49>> so we can actually visually test it.
- 35:51>> So we can visually
- 35:54>> play with it. Yeah.
- 35:55>> Test it.
- 35:57>> Good call out.
- 36:00>> That's we did a run through of this.
- 36:02Like it's it's interesting because we
- 36:03did we've done like now three
- 36:04runthroughs of this and every time it's
- 36:07a little different, you know, like every
- 36:08time like last time we did it, it it it
- 36:10was it got it got this in the first run.
- 36:13So it's it's it's super interesting.
- 36:17Yes. That's why you always read it. You
- 36:19I mean we have to all when we're using
- 36:22coding agents and and Gentic IDs, you
- 36:24have to read it and pay attention to
- 36:26what it's doing because otherwise it
- 36:28will do things that we don't expect. All
- 36:30right. So, it looks like it it reordered
- 36:32it again. Now, it's it's task one
- 36:34through 10, though. Um, until it gets
- 36:38into phase two,
- 36:41I think for the sake of time, because we
- 36:44only have about 20 minutes together,
- 36:45let's let's see if we can start
- 36:48implementing some of these tasks.
- 36:51And I do have an after. So, if it
- 36:55doesn't get through all of them, we'll
- 36:56still show you what it comes up with
- 36:58afterwards. How's that sound? Yeah,
- 36:59sounds good to me.
- 37:01>> So, we'll start task here. And you can
- 37:03see we can do start a task a couple
- 37:04different ways. We can just click in the
- 37:06UI or we can talk to it in the chat. So,
- 37:09I'm going to start task. Start task.
- 37:12I'm just How about we do five?
- 37:15Yeah.
- 37:15>> And we'll do six because that has the
- 37:17start screen component.
- 37:18>> Yeah. And right now, what it's doing,
- 37:20it's it uh it's going to go into the
- 37:24terminal. It's going to run some
- 37:26commands. Now, typically, you can see
- 37:28here we have a whole task list. Uh
- 37:31there's task the cued. So, it's going to
- 37:33do task one and then it's going to do
- 37:35the rest of the task afterwards. These
- 37:37actually need to be done in order. Uh
- 37:39that's why it it does it this way. You
- 37:42can also just take a look at it. It's
- 37:44now starting to do it. It this one was
- 37:46pretty easy. Just had to like make a few
- 37:48files and install a few npm
- 37:50dependencies.
- 37:52And then I can kind of look at the next
- 37:53one and see it's starting task two. It's
- 37:55going through it pretty quick. This this
- 37:57will probably take a little bit of time.
- 38:00>> So while this is happening, why don't we
- 38:02uh pivot to talk about property property
- 38:04testing?
- 38:05>> Great.
- 38:06>> Um maybe switch to the design view.
- 38:09>> Yes. Cool. So I'll just give a little
- 38:11bit of an overview. So there's a reason
- 38:13why we went with in the requirements we
- 38:15went with this user story acceptance
- 38:17criteria format. And the acceptance
- 38:19criteria are structured in what's called
- 38:22years which is easy approach to
- 38:24requirement syntax. Believe that's
- 38:26that's it. Uh but what what what that
- 38:28means is that when you define something
- 38:30it says when you do this the system
- 38:32shall do y and that allows us to create
- 38:36uh essentially logical equivalence and
- 38:38do things like formal reasoning on the
- 38:41actual requirements. So that's really
- 38:43what a property is. Uh you know there's
- 38:45a definition of a property here. it's a
- 38:46characteristic or behavior that should
- 38:48hold true across all executions of a
- 38:50system. So what we do is we take the
- 38:53year's format requirements extract
- 38:54properties and then from those
- 38:56properties we actually there's a
- 38:58framework called fast check that allows
- 39:00you to actually test those properties
- 39:02and unlike unit testing that has like
- 39:05limited inputs uh you know the inputs
- 39:07that you provide to the system to test
- 39:08the output with uh property testing you
- 39:11it actually fuzzes a whole bunch of
- 39:13values across a range. So it generates
- 39:16more evidence that you've when you have
- 39:18a requirement the generated output maps
- 39:21to the requirement right so that we're
- 39:23thinking about this whole world of specs
- 39:24in a very first principles approach
- 39:26right like how do you how do you solve
- 39:28the problem in the AI world where you
- 39:30where the out generated code actually
- 39:33matches the user's intent and property
- 39:36based tests are like the first way we're
- 39:37going about it but we're there's a lot
- 39:39more we have planned
- 39:42>> yeah it's pretty powerful everything you
- 39:44and do with it. I'll I'll show you an
- 39:45example. I did this uh I'm a I'm a chess
- 39:48fan. I created a I vibe coded or spec
- 39:50coded, I guess you could say, a chess
- 39:52app. Uh and I was for me and my son and
- 39:57we were we wanted to make sure that it
- 39:59worked as it expected. So here is a list
- 40:02of property based tests for this other
- 40:04application that we created. And you can
- 40:06even see if you hover over it, it tells
- 40:08you what the test was for. This really
- 40:11does test those requirements. uh fast
- 40:13check is by the way if you're using
- 40:14Python or a different language there are
- 40:17other libraries that do that do does
- 40:19this property based testing so I can
- 40:22even take a look at it uh it says all
- 40:24property based tests passed for any
- 40:26board to stay in the AI gener move the
- 40:27move must be valid against the movement
- 40:29registry and so here's the test and you
- 40:32can see the uh for those of you are
- 40:35looking at imports from npm it's this FC
- 40:38from fast check
- 40:40and we write here we write our test we
- 40:44do an assert on it we have create board
- 40:46state and then one thing that I find
- 40:48really interesting is this numbum runs
- 40:50at the end so it's going to it's
- 40:52basically doing fuzzy testing it's
- 40:54making it changes random changes to the
- 40:57test file and it'll actually run over a
- 41:00hundred times to make sure it is as you
- 41:03expected and I will say adding these
- 41:06property based testing makes the output
- 41:08of your code at a much higher quality
- 41:11and oftent times less bugs.
- 41:15And I you can see here it just goes
- 41:17through a bunch of different tests to
- 41:19check to see if the move is valid.
- 41:22Where are we in our demo? So we have
- 41:26step task five. Looks like it's on task
- 41:29six now which will take uh a moment.
- 41:33>> So as the tasks get done, it also marks
- 41:35it off in the implementation plan. So
- 41:39if you take a look at this.
- 41:40>> So here's our job seekers app we've been
- 41:42creating. You can see we have nice
- 41:43little check marks next to everything
- 41:46and it's diligently working on task six
- 41:50which is this.
- 41:51>> What happened right now is one of my
- 41:52favorite features we launched recently
- 41:54like the diagnostics tool. So because we
- 41:57own the overall ID interface when there
- 41:59are problems like so if you go to the
- 42:01problems tab in in your um editor
- 42:04typically reports like your your lint
- 42:06linting issues and the agent is able to
- 42:08read it. So we used to have a lot of
- 42:11problems with specs like you'd have five
- 42:14tasks generated and you open problems
- 42:15tab you'd see like there's like six or
- 42:17seven issues to fix but like ever since
- 42:20we've had this added this diagnostics
- 42:21tool it's been really great.
- 42:23>> So it completed step six. I'm not sure
- 42:25if this it wanted me to go to 10. We
- 42:27could keep it going. Let me see. I'm
- 42:29just doing an npm rundev because I want
- 42:30to give everyone here time to ask us
- 42:32questions and to show our quick
- 42:34optimized demo at the end. So, if I open
- 42:37up 5173. Oh, looks like it didn't
- 42:40finish. It still has a hello world. I
- 42:41think it probably didn't link the
- 42:43component the start.
- 42:44>> Why don't you just go ahead and do do
- 42:46the other ones and you can while it's
- 42:47happening, you can switch to the
- 42:50finished app so people have time to ask
- 42:51questions.
- 42:52>> Yes. Okay. We're going to cue all these.
- 42:55Uh you can see here though,
- 42:58>> last time we did this in five tasks, it
- 43:00was done. So you can see it's starting
- 43:02to create the components that that we
- 43:04want. Um some use states. These are like
- 43:08hooks in React.
- 43:10Okay, let's take a look at our final
- 43:13app.
- 43:16I'm going to run dev on this. You see
- 43:18here, same principles as the app I'm
- 43:21showing you. We have our spec design
- 43:23requirement task
- 43:26and so this is what it looks like. Uh
- 43:28it's an interview prep practice. So we
- 43:30have behavioral question, technical
- 43:32questions and leadership questions. It's
- 43:33connected to uh a claude sonnet 3.7
- 43:38model I believe. So which one do you
- 43:40want to try?
- 43:41>> Um just pick pick one. Let's do let's do
- 43:44uh technical.
- 43:46>> Sure. And I'm going to allow this time.
- 43:49So explain a a complex technical concept
- 43:52from your field to someone.
- 43:54Hello, let me explain about websites.
- 43:58There's a server and there's a client
- 44:02and our website has to interact. It can
- 44:06run locally. We can have single page
- 44:08applications. We can have serverside
- 44:09rendered apps.
- 44:12>> This could keep going.
- 44:13>> As you can see, we've gotten pretty low
- 44:15scores in our every time we play to
- 44:17this. [laughter]
- 44:19Probably not going to pass the interview
- 44:21with that, but for the sake of this
- 44:23demo, we'll keep going. It's actually uh
- 44:25one thing it keeps the last answer from
- 44:28the last one we ran in here. It's just
- 44:30something we didn't change yet. Describe
- 44:32a challenging technical problem you
- 44:33solved recently. What was your approach?
- 44:35What was the outcome?
- 44:38>> I'd say this app, right?
- 44:40>> We learned about the web APIs. We
- 44:42learned to create a specriven
- 44:45development to create this application
- 44:47I'm using right now. I learned about a
- 44:50little bit about Vit and React and
- 44:52property based testing and I got to do a
- 44:55demo in front of 100 people.
- 45:00Okay.
- 45:03How do you stay current with new
- 45:04technologies industry trends? We should
- 45:06ask the audience this. I'm sure they
- 45:07have lots of interesting answers.
- 45:10I I attend reinvent amazing events,
- 45:14amazing talks. I also go and look at
- 45:18builder center that AWS uses to tell
- 45:23people about our latest tech. Uh I go to
- 45:27conferences. I look at Stack Overflow. I
- 45:32I go online to YouTube and watch a bunch
- 45:35of technical creators.
- 45:37Maybe I'll get a little higher score for
- 45:39that. So then I click finish, get score.
- 45:42And now it's taking all this. It has a
- 45:44very simple system prompt uh that just
- 45:47does an analysis on it. And it should go
- 45:51and grab the information. It sometimes
- 45:53takes 30 to 60 seconds.
- 45:57>> Nice. You got four out of 10 this time.
- 46:04And of course, the candidates
- 46:06demonstrate some relevant technical
- 46:07knowledge, engagement with the industry,
- 46:08but the response lacks structure,
- 46:09clarity, and depth. Um, so great
- 46:12interview prep that we could use and
- 46:14literally just took us not so long to
- 46:17put it together.
- 46:19And looks like it did actually complete
- 46:21this as well.
- 46:22>> It'd be nice to see something a little
- 46:23more than hello world after.
- 46:26[sighs and gasps]
- 46:27>> All right. Well, let's give some time.
- 46:30Um, let me switch back to Do we want Do
- 46:33you guys want to see what it it came up
- 46:34with after step 10 that we're not faking
- 46:36this?
- 46:37>> I do.
- 46:38>> Okay, let's see here. Okay, this is what
- 46:41it This is what it came up with. Start
- 46:43interview prep. Look, tell me about
- 46:46yourself and your background.
- 46:48Allow this time. Test test test. Hello.
- 46:50Hello. Hello.
- 46:53Okay, so it's duplicating it. Maybe we
- 46:56could go back and have it do something
- 46:58else. greatest strengths. This is my
- 47:00greatest strengths. Test, test, test.
- 47:02Okay, you get the idea. One thing I
- 47:04didn't do is I didn't put my anthropic
- 47:05claude key in here, so it's definitely
- 47:07going to fail at the last step.
- 47:09>> Oh, you Oh, yeah, you forgot about that.
- 47:11[laughter]
- 47:12>> Okay.
- 47:12>> Uh, test test. And I think
- 47:17right here I maybe it's not even using.
- 47:20That's amazing. [laughter] That's all
- 47:22you need to do, guys.
- 47:27All right, let's switch our point.
- 47:30>> Well, I mean, I think we're we have 12
- 47:32minutes left. I I think we we got
- 47:34through the the core workflow that we
- 47:36wanted to talk about. I think just one
- 47:38thing to keep in mind in specs, like we
- 47:39launched this and like there was a lot
- 47:40of positive momentum and adoption around
- 47:43specs, but this is just the start. As I
- 47:45said, we're we're solving like first
- 47:47principle problems on the requirement
- 47:48side. How do you know often what we do
- 47:50is like we do things like scenario
- 47:52planning, right? like or scenar but like
- 47:55when we actually build something like
- 47:56hey when when you do when the user does
- 47:58X and Y what's the expected behavior
- 48:00right that doesn't really translate well
- 48:02into like the structured kind of doc we
- 48:04have here but there's clarity on
- 48:05requirements as a concept how how do you
- 48:08know your task list matches um uh your
- 48:11task output matches your intent is
- 48:13another area we're just continuously
- 48:15going to invest in and I'm actually
- 48:17super excited about this journey with
- 48:18specs we're on and I'm very excited to
- 48:20come back next year and talk about all
- 48:22the cool things we do with specs over
- 48:23the cold over the year.
- 48:25>> Me too. And also just looking at it, it
- 48:27never implemented the cloud AI
- 48:28integration. That was the MVP didn't
- 48:30have that integration,
- 48:31>> but you got a 9 on 7 on 10. So, you
- 48:33know, it's better off.
- 48:34>> I know. [laughter]
- 48:39>> A git repo. Um,
- 48:41>> yeah, we'll put it up. Sure,
- 48:43>> we can put it up.
- 48:44>> I don't have one right now, but we we
- 48:46can certainly do that.
- 48:48>> You could use the oneclick git
- 48:50integration on Kira. Oh, really?
- 48:52>> Yeah,
- 48:53>> that's We'll have to try that.
- 48:56>> You just You click here
- 48:58>> and you add them to your source changes.
- 49:00Oh, you're you're back on Oh, you're no
- 49:02longer on the demo. Never mind. I was
- 49:04going to demo another feature. Cool. Um,
- 49:08>> thank you.
- 49:09>> Yeah, thank you. Any other questions?
About this transcript
This page contains the full transcript of AWS re:Invent 2025 - Spec-driven development with Kiro (DEV314) by AWS Events, generated from the public captions YouTube serves with the video. The transcript has 8,813 words across 1,288 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.