YouTube2Text

AWS re:Invent 2025 - Spec-driven development with Kiro (DEV314) — Transcript

by AWS Events · 8,813 words · 1,288 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Hello everyone. Thanks for making it.
  2. 0:02Today we are going to be talking about
  3. 0:07spec driven development with Curo.
  4. 0:10This is going to be a
  5. 0:14we're going to be doing a code talk here
  6. 0:16today. So I have my laptop set up. We're
  7. 0:18going to look at some code, but we're
  8. 0:19going to first go through some slides
  9. 0:21and I'll explain what we're up to.
  10. 0:23First, let's have a a little bit of an
  11. 0:25introduction. My name is Eric Hchett.
  12. 0:27I'm a senior developer advocate at AWS
  13. 0:30and today I have with me Nick Hill.
  14. 0:33>> Hey folks, I'm Nick Hill. Uh I lead the
  15. 0:35product team for Kira. Uh thank you all
  16. 0:38for coming here. This is after lunch.
  17. 0:39We're going to have a fun session. Hope
  18. 0:41you you won't need your coffee. Make it
  19. 0:44fun.
  20. 0:46Absolutely.
  21. 0:49So we're going to start with a few
  22. 0:51things. We're going to look at the
  23. 0:53history of Curo. So Nuel is going to
  24. 0:56jump directly into to that in a moment.
  25. 0:59We're going to talk about a little bit
  26. 1:01of spectriven development, the name of
  27. 1:03this talk and why I think everyone here
  28. 1:05should be using it with their agentic
  29. 1:07ideides today and we're going to
  30. 1:09specifically look at Curo and how that
  31. 1:11works with it. We're going to touch on
  32. 1:13MCP. Does anybody here use MCP servers
  33. 1:16right now?
  34. 1:18Okay, I see a handful. Let me ask you,
  35. 1:20who's using Curo right now?
  36. 1:23Okay, only a few. So hopefully by the
  37. 1:25end to end of this hour talk that I have
  38. 1:28convinced you all to try out Kirao and
  39. 1:30Spectdriven development
  40. 1:31>> and and uh just another followup who's
  41. 1:34uh who's used Kirao so far.
  42. 1:37>> Okay, a few more people.
  43. 1:39>> Okay,
  44. 1:39>> good to know.
  45. 1:40>> Good to know. And then this is a code
  46. 1:43talk so I see everyone has their laptops
  47. 1:46out or most people. We are going to jump
  48. 1:48on I'm going to jump on this laptop
  49. 1:50here. We're going to do a little bit of
  50. 1:50pair programming. So, we're going to try
  51. 1:52uh to create an app. Uh we're going to
  52. 1:55talk about it more in a moment, a job
  53. 1:56seekers app. We're going to use the
  54. 1:58spectriven development flow inside Curo
  55. 2:00and we're going to see how well it does.
  56. 2:03Uh and then we're going to talk about
  57. 2:04some of the features of how it works all
  58. 2:07together. And then I want to give every
  59. 2:09everyone here time to ask us questions
  60. 2:11at the end. So maybe uh 10 15 minutes to
  61. 2:15to for that.
  62. 2:18So those of So from this the hands that
  63. 2:21came up earlier sounds like a lot of you
  64. 2:23have not used much of Curo. So let me
  65. 2:26let me explain it before we get too much
  66. 2:27further. It's a new agentic IDE that we
  67. 2:32released in the last few months. It
  68. 2:34actually just went G or general
  69. 2:36available a few weeks ago and it's we're
  70. 2:41really proud of it. It's it's really
  71. 2:43based on this idea of spectrum
  72. 2:45development. Now you can do vibe coding
  73. 2:47but we really feel like spectriven
  74. 2:49development is what it makes it sets it
  75. 2:52apart from some of its competitors that
  76. 2:54maybe some of you have heard of. Uh when
  77. 2:56we released it, it was a total surprise
  78. 2:59to us. It really went viral. It got
  79. 3:01hundreds of thousands of downloads. We
  80. 3:03had to put up a weight list. Uh and then
  81. 3:05people found a way around the weight
  82. 3:07list. So we had to put even bigger
  83. 3:09barriers up. But we've been really happy
  84. 3:11with reception. We've gotten so much
  85. 3:13feedback on it and we've been making it
  86. 3:15even more uh better
  87. 3:18uh as as it's been going on as this time
  88. 3:20frame um in the last few months.
  89. 3:25So I'm going to kick it off to Nel to
  90. 3:28talk about the history of Kira.
  91. 3:32Cool. So I'm going to spend a little bit
  92. 3:33of time talking about this, but I want
  93. 3:34to jump I want to jump to the coding
  94. 3:36session fast. So uh the evolution of
  95. 3:38building software uh let's actually take
  96. 3:41a step back and talk about the overall
  97. 3:43editor space right ids got really
  98. 3:45popular because they provided a single
  99. 3:46tool chain where you could do things
  100. 3:49like have an integrated compiler view
  101. 3:51lint linting issues find uh de debug set
  102. 3:55breakpoints and it it offered a lot of
  103. 3:58benefits over you know traditional text
  104. 4:00text edit like code interfaces and so
  105. 4:03that that was kind of the first wave
  106. 4:05that got wide adoption
  107. 4:08And then in the last I'd say two years,
  108. 4:10we've had really like AI editors become
  109. 4:12a big thing. It first started with code
  110. 4:15completions. So like you'd be in a file,
  111. 4:17you type like a hash or you type two
  112. 4:20slashes and you you'd be like do this
  113. 4:22and then it would generate like a
  114. 4:23function for you. And then that quickly
  115. 4:25evolved to the more agentic or like you
  116. 4:28know I call it like the chat GPT like
  117. 4:29experience where you you input natural
  118. 4:32language and the agent's able to edit
  119. 4:34multiple files.
  120. 4:38The fundamental shift that's happened
  121. 4:40and we see this with all our customers
  122. 4:42who are who've been using Kirro and and
  123. 4:45Q developer in the past was that uh
  124. 4:48unlike previously where the developer
  125. 4:50drives and provides I think with AI
  126. 4:53editors the developer steers the AI
  127. 4:55agent to author and review code the
  128. 4:57developer is still very much in the in
  129. 4:59the in the driver's seat but it's a
  130. 5:02different workflow where you can
  131. 5:03actually use AI to kind of accelerate
  132. 5:05your workflow.
  133. 5:07But you're still responsible for the
  134. 5:09code. That's the important bit.
  135. 5:14Vibe coding. This term got really
  136. 5:15popular in the last year year and a half
  137. 5:17where it's essentially covers that this
  138. 5:19workflow where it goes developer writes
  139. 5:21a prompt, AI generates code, you write
  140. 5:23another prompt and then you keep going
  141. 5:25in this loop and cycle. And this has
  142. 5:27worked really well for a lot of people
  143. 5:30to be able to prototype things that
  144. 5:31would otherwise take weeks to set up.
  145. 5:34But it's also got its uh challenges. Um
  146. 5:38Slack threads for example, I use Slack
  147. 5:40threads as a good analogy. So if you
  148. 5:41have a a Slack convers, we've all been
  149. 5:43in Slack conversations where like the
  150. 5:45message thread goes to like a 100
  151. 5:46messages and you know you leave that
  152. 5:49thread with like okay, what did we take
  153. 5:50away? Uh why why are we making the
  154. 5:53decisions we're making? And and
  155. 5:54sometimes that's that's just lost in
  156. 5:56that context. And that's that's one of
  157. 5:58the challenges you have with vibe coding
  158. 6:02is that it kind of completely skips the
  159. 6:04traditional SDLC life cycle, right?
  160. 6:07Historically, when we build features,
  161. 6:09we've always started with artifacts,
  162. 6:10right? Require we talk we talk about
  163. 6:12requirements, we we write design docs,
  164. 6:14we talk about trade-offs, and we meet
  165. 6:16and then and then we start. Whether it's
  166. 6:18waterfall or agile, you're you're doing
  167. 6:20you're doing that both at different
  168. 6:21scales.
  169. 6:25So what we did is we looked at we really
  170. 6:27talked to a lot of our power users
  171. 6:29internally in the company and externally
  172. 6:31and we saw that they had already made
  173. 6:33this organic shift to planning before
  174. 6:35they actually went about creating or
  175. 6:38generating code and planning up front
  176. 6:41really helped the models focus and
  177. 6:42produce better output. So what we did is
  178. 6:45we built a a firstparty workflow in for
  179. 6:49planning called specdriven development.
  180. 6:51And normally this this time I demo it,
  181. 6:54but we're going to spend so much time
  182. 6:55talking about it that I'll just move
  183. 6:56move ahead and get get to that quickly.
  184. 6:59But really specri development what it
  185. 7:00introduces it introduce a workflow for
  186. 7:03going from your initial requirements to
  187. 7:05to an output. It's a really structured
  188. 7:07workflow where you start with a you
  189. 7:10start with requirements.
  190. 7:11Once you your requirements are done,
  191. 7:13there's a design. So you actually look
  192. 7:15at your design file and then you get to
  193. 7:17a task list and then you implement that
  194. 7:18task list. And you can go back and forth
  195. 7:20in this loop um till you and end up with
  196. 7:24an with an output you're happy with.
  197. 7:29And once your code is generated a big
  198. 7:30another big problem in this space the
  199. 7:32term AI slop has become quite common now
  200. 7:36is where the AI generates a lot of code
  201. 7:38and there's you once you generate code
  202. 7:40there like there are no processes to
  203. 7:42actually
  204. 7:43a lot of tools don't actually have
  205. 7:45processes to review things. So we have
  206. 7:46hooks built in and what hooks allow you
  207. 7:48to do is we have a whole bunch of life
  208. 7:50cycle events in the IDE such as file
  209. 7:52save, file create uh and we're adding
  210. 7:55adding a bunch more uh in the next few
  211. 7:58weeks that actually allow you to
  212. 7:59validate changes. So an example of a
  213. 8:02hook that we use in our docs repo uh is
  214. 8:06is a c effectively like a c spell
  215. 8:08checker but it also checks for tone and
  216. 8:10style. Right? So our workflow when we're
  217. 8:14writing docs for new features is that we
  218. 8:16take our initial requirements doc. We
  219. 8:18feed that into curo and it it structures
  220. 8:21our docs but then that we have hooks
  221. 8:23that help actually say hey did like it's
  222. 8:25almost like a separate thread to think
  223. 8:27about the work that was created that
  224. 8:29help help us set up rules. Another good
  225. 8:33example is for if you're building UI
  226. 8:34components, you can have things like,
  227. 8:36you know, you have a React component,
  228. 8:38you want it to follow a single single
  229. 8:40responsibility principle, right? So it's
  230. 8:42a single focused, you can use a hook for
  231. 8:44that.
  232. 8:47And rather than me keep talking about
  233. 8:49this, why don't we actually just go
  234. 8:51ahead and build something together? And
  235. 8:54we're going to pair program. Though
  236. 8:55there's only one chair, so I'm going to
  237. 8:56peer over Eric while he's programming.
  238. 9:01>> Sounds good. All right, let's get this
  239. 9:03set up.
  240. 9:07Log in.
  241. 9:10One second.
  242. 9:20Okay.
  243. 9:22So, uh we want to create an app with you
  244. 9:25guys today. So before we started, me and
  245. 9:29Nikil came up with this Figma. So do you
  246. 9:32want to explain a little bit about what
  247. 9:33it is?
  248. 9:33>> Yeah. So just FYI, after this demo,
  249. 9:36we're both quitting our jobs and this is
  250. 9:37going to be our new business cuz we
  251. 9:39really like the idea. Um but the core of
  252. 9:42it is a job seekers app. So uh problem,
  253. 9:45here's the elevator pitch. So problem
  254. 9:47people looking for jobs outside of just
  255. 9:49prepping for interviews, there's a lot
  256. 9:51more than just goes into like do you
  257. 9:53know the answer. It's like what's your
  258. 9:54what's your style? What's your tone and
  259. 9:57how do you actually prep? People use use
  260. 9:59software tools out there, but like you
  261. 10:01can actually talk to another person and
  262. 10:02there's no experience where you get
  263. 10:04feedback on how how you're doing on your
  264. 10:06interviews. So that's the core of the
  265. 10:08idea and there's you can imagine a lot a
  266. 10:11we can build a lot of things around it
  267. 10:12around it. So the way Eric
  268. 10:15[clears throat] and I started this is we
  269. 10:16just hopped on a quick call and we
  270. 10:18whiteboarded a flow where we said okay a
  271. 10:21user logs in uh they set up a profile.
  272. 10:24Uh and once they set up a profile they
  273. 10:26can actually start interview prep and a
  274. 10:28very simple MVP flow would be okay you
  275. 10:31start start my interview prep and you
  276. 10:33you go in this question answer flow. So
  277. 10:37you are you're get you're asked a
  278. 10:38question, you can record your response
  279. 10:41and that goes back and forth and at the
  280. 10:44end we deliver uh an overview a
  281. 10:47qualitative overview of how you did with
  282. 10:50quantitative uh with a quantitative
  283. 10:52score.
  284. 10:54Excellent.
  285. 10:56So we have this picture that this Figma
  286. 10:59that we created and here is KO. Just for
  287. 11:02those of you who have never used it, let
  288. 11:04me give you a quick tour. I have a a
  289. 11:06brand new VIT app that I just started
  290. 11:09this morning that we can start off with.
  291. 11:12It's basically hello world. So, we're
  292. 11:14just going to keep it to the front end
  293. 11:15for now, but you can imagine some of you
  294. 11:17DevOps and and backend engineers, you
  295. 11:18can imagine we might have a backend
  296. 11:20component to this, too. Uh, I just
  297. 11:23wanted to start with this also has
  298. 11:24Tailwind CSS installed for our design
  299. 11:28graphics. Now, on the on this side here,
  300. 11:30we have this little ghost. I haven't
  301. 11:32really talked about this. This is our
  302. 11:34Curo ghost. It's our mascot. If you have
  303. 11:36been around the Venetian, we have the
  304. 11:39Kira House. Anybody seen the Kira House?
  305. 11:41That looks like a haunted house. Yeah, I
  306. 11:43would recommend everyone to to go
  307. 11:45through it. It's actually pretty fun.
  308. 11:46And then at the end of it, there's
  309. 11:48actually a code to get a,000 free
  310. 11:52credits. 500 thou 500 or a thousand. Um,
  311. 11:55so check that out. You can go through
  312. 11:57through it at any time. Uh so this this
  313. 12:00this ghost here brings up a menu on our
  314. 12:04left hand side. Agent hooks, agent
  315. 12:06steering, specs, and MCP. So hooks, we
  316. 12:09kind of explained it already. It's a way
  317. 12:11you can essentially have things work in
  318. 12:15the background that are triggered on
  319. 12:17certain events. So imagine that you save
  320. 12:19a file, delete a file, you can have
  321. 12:21things happen. One common scenario is
  322. 12:23you might update documentation on every
  323. 12:25file save or you might uh do some
  324. 12:28localization and we actually even have
  325. 12:31pre-built ones you can kind of take all
  326. 12:33take over uh without having to write
  327. 12:36anything yourself and you can also have
  328. 12:38it specify certain file types. We're
  329. 12:40adding as NIL said more flexibility with
  330. 12:44this agent hooks in the future but I
  331. 12:45just want to give it a shout out. We've
  332. 12:46also seen very creative people from the
  333. 12:48community do this in all sorts of ways
  334. 12:51for their git workflows
  335. 12:54for testing all sorts of things. Uh
  336. 12:57agent steering is more like a rules file
  337. 13:01that you can put in maybe you have
  338. 13:03certain coding standards uh or design
  339. 13:06standards that you want to include. You
  340. 13:08can put it in steering files. I can also
  341. 13:10just have it automatically generate the
  342. 13:12steering files for me. And so what this
  343. 13:15does is it looks inside this folder
  344. 13:18inside my application and then it
  345. 13:20creates a few files. You can see here
  346. 13:22it's already created the product and the
  347. 13:24tech file. And these are just based on
  348. 13:27what's in the app right now. So if you
  349. 13:28have an existing application and you
  350. 13:31want to kind of play with Curo today,
  351. 13:34you can put this in there and have it
  352. 13:36generate the steering files and then
  353. 13:37that'll get added to the context every
  354. 13:39time you start talking to the IDE.
  355. 13:43>> Maybe you can you can show what that
  356. 13:45looks like, what those files look like.
  357. 13:46>> Yes, that's a good idea. So here is what
  358. 13:48the product is. It's not that much
  359. 13:50because we really haven't added anything
  360. 13:52yet, but it's a Vue3 web application
  361. 13:54with TypeScript and Vit. I use a script
  362. 13:57setup. I don't know if anybody's a
  363. 13:59Vue.js fan, but that's essentially how
  364. 14:02they are created. The components type
  365. 14:04safe. We have the structure. Right now,
  366. 14:06it's just kind of the hello world out of
  367. 14:08the box structure, but it's nice it's in
  368. 14:10here. Uh, and then here's some tech,
  369. 14:14which I just scroll down, but yeah, the
  370. 14:17frameworks, TypeScript, V, everything
  371. 14:19you would expect in there. And you can
  372. 14:22keep this right now. This is just a
  373. 14:24moment in time snapshot of your current
  374. 14:27application. However, you can be
  375. 14:30creative with those hooks and maybe you
  376. 14:31have it continuously update those
  377. 14:33documents and those can be shared with
  378. 14:35your product teams or whoever else. And
  379. 14:37of course, uh I heard I saw some hands
  380. 14:40earlier. MCP my I'm I'm a huge MCP fan.
  381. 14:43It's getting there. It's even getting
  382. 14:45even better. I've seen some some stuff
  383. 14:46coming out recently. But this is where
  384. 14:48you would set uh your MCP servers. In
  385. 14:51this case, I have contact 7. I have AWS
  386. 14:55loves MCP servers. If you don't know, we
  387. 14:58keep continuously adding more for
  388. 15:00different services and different
  389. 15:01products. Kind of the catchall one is
  390. 15:04the docs one. I'd recommend to try that
  391. 15:07one out. Uh but if you have a specific
  392. 15:09use case, you can install like the MCP
  393. 15:11server for Bedrock agent core is one of
  394. 15:13them. And it's just a few lines. We in
  395. 15:15fact just recently uh added a way to add
  396. 15:19MCPU servers with one click. So, if you
  397. 15:22go to our curro.dev, I'll show that in a
  398. 15:24little bit. There's a little there might
  399. 15:26be a little button there. You click on
  400. 15:27it, it'll just automatically install it
  401. 15:30inside your inside kuro. And then we are
  402. 15:33diligently going to many of your
  403. 15:35favorite open- source MCP GitHub
  404. 15:38repositories and updating it to add the
  405. 15:40little oneclick install.
  406. 15:42That is still working. I'm still working
  407. 15:44on that. And then, of course, I have
  408. 15:46Brave Search, Bedrock, Agent Core. So
  409. 15:49that that's kind of a little bit of of
  410. 15:52of how of some of the features of curo.
  411. 15:55But I know the name of this talk is spec
  412. 15:57driven development. So let's let's dive
  413. 15:59into that. So once again I on the right
  414. 16:02hand side I have two boxes here. I have
  415. 16:04vibe which I I just love to vibe. It
  416. 16:06does really good job at doing that or
  417. 16:08spec uh agents. Right now we support
  418. 16:11claude sonet 45 4 um 4.5 opus haik coup.
  419. 16:17So, we kind of recommend just to start
  420. 16:20off with auto because we pick behind the
  421. 16:22scenes the best model that you should be
  422. 16:24using. I'll just leave it at auto. We're
  423. 16:27adding more and more all the time. It's
  424. 16:29definitely in the back of our heads of
  425. 16:31adding more models for those of you who
  426. 16:33are fans of other ones. Uh, sit tight.
  427. 16:36So, but let's write spec. Uh we actually
  428. 16:39had a before I well let's let's go ahead
  429. 16:43and and start it and then I'll I'll give
  430. 16:45you a little story I had the other day.
  431. 16:47So uh here is the diagram that me and
  432. 16:51NIL came up with. I'm just going to make
  433. 16:53a snippet of it a screenshot
  434. 16:57and I'm just going to paste it here and
  435. 16:59let's give it a prompt. So I'm going to
  436. 17:01choose spec here and I'm gonna say
  437. 17:03please use this picture and create a job
  438. 17:07seekers app.
  439. 17:10Use the picture as a
  440. 17:13um uh as the design.
  441. 17:18I don't know. I always I always like to
  442. 17:20be uh explicit and
  443. 17:23I like to be polite to AI too. So you'll
  444. 17:25see me using please and thank yous. I
  445. 17:28would do that too.
  446. 17:30Okay, so now it's going in and it's
  447. 17:33taking a look at those steering docs
  448. 17:34that we just created and it's going to
  449. 17:37create this job interview preparation
  450. 17:39flow. And it's starting off with the
  451. 17:41requirements document. And I'm going to
  452. 17:43have Nicole really walk me through on
  453. 17:45what his idea is and how properly you
  454. 17:49could [clears throat] look through a a
  455. 17:50requirement stock.
  456. 17:52>> Cool. Awesome. Let me let me actually
  457. 17:54switch to the preview view of that
  458. 17:55requirement stock.
  459. 17:56>> Okay, sure.
  460. 17:56>> You don't mind?
  461. 17:58>> Here, I'll do it. Okay, go ahead.
  462. 18:01>> All right.
  463. 18:05So, as you can see, uh, we took Kira
  464. 18:07took
  465. 18:08>> We're going to switch. We're going to do
  466. 18:09a little
  467. 18:10>> Yeah, we're going to play a little
  468. 18:11musical chairs.
  469. 18:12>> Mhm.
  470. 18:13>> So, as you can see here, Kira took the
  471. 18:14initial
  472. 18:16screenshot that we had and actually
  473. 18:18unpacked that into a format. And I just
  474. 18:22realized Eric has an o opposite scroll
  475. 18:24from me. So, it's like really this
  476. 18:26throws me off when I'm trying to scroll.
  477. 18:29uh but it it unpacked our initial prompt
  478. 18:31to a set of requirements and the way we
  479. 18:33define requirements is we we define them
  480. 18:36as a user story and every user story has
  481. 18:39acceptance criteria.
  482. 18:41Now this is actually something we built
  483. 18:42we were doing inhouse in in Amazon in
  484. 18:45the in our teams the way we worked. So
  485. 18:46we took the same workflow that we had uh
  486. 18:50on our team and we made it available
  487. 18:53broadly and the benefit of a user. So
  488. 18:56user story is like the human readable
  489. 18:58way that if we want to say hey do we
  490. 19:00want what's what feature do you want to
  491. 19:01support? So this one's logging in so
  492. 19:03that I can access my application profile
  493. 19:06management whereas the acceptance
  494. 19:08criteria are the actual details. So if
  495. 19:10you you were to sit and say, "Okay,
  496. 19:12let's go and build this profile
  497. 19:14management feature, what are the
  498. 19:16nitty-gritty details that I need to
  499. 19:18actually think about?" So the the first
  500. 19:21pass I typically do is when I'm when I'm
  501. 19:23building something with hero is that I
  502. 19:25will look at the user stories and see if
  503. 19:27they're the user stories that I actually
  504. 19:28want to build. Um, and I'll start there
  505. 19:31before I get into the acceptance
  506. 19:32criteria. So if we start at first one's
  507. 19:34about logging in,
  508. 19:37the second one's about profile
  509. 19:38management.
  510. 19:41The third one's about an interview prep
  511. 19:43session.
  512. 19:47This is about viewing and responding to
  513. 19:49answers. And like this is very
  514. 19:52important.
  515. 19:55Okay. This is about navigating through
  516. 19:57multiple questions.
  517. 20:01This is about the analysis and the
  518. 20:02result.
  519. 20:06This is about trend analysis.
  520. 20:08Requirement seven.
  521. 20:10Requirement eight is about requirement
  522. 20:13eight is my least favorite requirement
  523. 20:14because it's really nothing. Like what
  524. 20:16do you mean I have a clean and intuitive
  525. 20:17interface? Uh so what I'm going to do is
  526. 20:21actually like simplify this cuz I've I
  527. 20:23just thinking through this I think that
  528. 20:24demoing all here is not that important.
  529. 20:27So, I'm just going to say um please
  530. 20:30remove requirements
  531. 20:33one, two,
  532. 20:38uh we want three, we want four,
  533. 20:43we want five, we want six. I don't think
  534. 20:46we necessarily care about state
  535. 20:48persistence either right now. We just
  536. 20:50want to get something up and running.
  537. 20:52seven and eight
  538. 20:55as they are not needed for our MVP
  539. 20:59scope. Look, I use please as well. I
  540. 21:02never use please.
  541. 21:04I'm telling you. Although some people do
  542. 21:06say it's just waste tokens, but I don't
  543. 21:08know
  544. 21:11the and this is something I really think
  545. 21:13even if you're not going to use Curo
  546. 21:15after this talk, just being able to have
  547. 21:18your ID or having your IDE AI IDE like
  548. 21:22go in uh and
  549. 21:25create these documents, but then also
  550. 21:27kind of going back and forth because
  551. 21:29oneshotting this may not give you
  552. 21:31exactly what you expect at the end of
  553. 21:33the day. So it's it's almost like a you
  554. 21:36kind of go back and forth process.
  555. 21:38>> I think the way I've seen seen actually
  556. 21:41talking to some customers is that you
  557. 21:43know the initial whiteboard we did right
  558. 21:46>> some if like as a developer I might
  559. 21:48prefer to just uh vibe code that right
  560. 21:51like just cuz then it forces me to think
  561. 21:53about my interfaces and things like that
  562. 21:54that I'll need and then enter something
  563. 21:57more structured. So that is also a
  564. 21:58workflow that uh we we we support right.
  565. 22:02So I think hopefully these requirements
  566. 22:05look good. I think for the interview
  567. 22:07questions we should just limit for
  568. 22:09interview questions limit to three.
  569. 22:16Yeah. So it should be just a quick I
  570. 22:18imagine it you go in it asks you a
  571. 22:21question and then you use your
  572. 22:22microphone explain it then it goes to
  573. 22:25the next question and then it does an
  574. 22:26does an analysis at the end.
  575. 22:29>> All right. I I think this is good. Um
  576. 22:36yeah uh so now that the requirements are
  577. 22:38done we can go ahead and move to the
  578. 22:41design phase. So what what's going to
  579. 22:42happen now is that it's going to take
  580. 22:44these requirements and generate a design
  581. 22:45dock based off your existing code base.
  582. 22:49And Eric and I will play mult uh musical
  583. 22:52chairs again.
  584. 22:54And for those of you who are thinking
  585. 22:56well my PM does this right I don't have
  586. 22:58to write requirements. Trust me, maybe
  587. 23:00you take what they give you to put in
  588. 23:02here so you can then really create the
  589. 23:05feature or product that they're looking
  590. 23:07for.
  591. 23:10So yeah, now it's creating the design
  592. 23:12documents, kind of reading what we've
  593. 23:13done and the updates, the requirements
  594. 23:16to go to this next phase, the design.
  595. 23:19Uh, while it's working, I can also click
  596. 23:21here to kind of get an idea of of the
  597. 23:24state of it. Uh, while it's working, one
  598. 23:27thing I was going to say with the spec
  599. 23:29and the vibe code, I played a game on
  600. 23:32stream the other day. I get to I get to
  601. 23:34have so much fun. We we actually had
  602. 23:37another person on and we decided like
  603. 23:39which task would I use vibe coding
  604. 23:41versus spec mode. And it's actually
  605. 23:43harder than you would imagine to figure
  606. 23:45out which one is is which one you should
  607. 23:48use. Uh, I usually say if it's something
  608. 23:50that needs a little bit more
  609. 23:51forethought, it's a larger feature, then
  610. 23:55spec mode is good. And I also I love
  611. 23:57just having this documentation
  612. 23:59afterwards I can look at.
  613. 24:01For those of you pink, for those of you
  614. 24:03eagle-eyed on the screen right there, it
  615. 24:05says, can, by the way, can everybody see
  616. 24:07this screen? Do I need to make the font
  617. 24:09bigger in the back? Can you see it?
  618. 24:12Okay, I see thumbs up. Okay.
  619. 24:15>> So what it did now is actually it
  620. 24:17created something called property tests.
  621. 24:19I want to
  622. 24:20>> Yeah. Why why don't we start with the
  623. 24:22just just the architecture, right? Like
  624. 24:24it just
  625. 24:25>> work down to see if it's the actual
  626. 24:27system we want and then I think let's
  627. 24:29get to properties
  628. 24:31and
  629. 24:31>> yes that's a good point. I'm so excited.
  630. 24:34I want to jump into property testing but
  631. 24:36we'll wait on that. So here is the
  632. 24:38design document that it created. It also
  633. 24:41gave me a nice summary of what it did uh
  634. 24:44and and I can move on from there. And
  635. 24:46it's asking me, hey, does this look
  636. 24:47good? We can move to the next phase. But
  637. 24:49I can look here and kind of take a look
  638. 24:51at the highle architecture. We have view
  639. 24:55uh nice little asky art here. But we do
  640. 24:57use mermaid diagrams. If those of you
  641. 24:59are familiar with that, it works really
  642. 25:00great in markdown. So we have start
  643. 25:02screen question results. Okay, I'm
  644. 25:04assuming this looks good. I mean just it
  645. 25:06does look good. Local storage to to
  646. 25:08share everything. web audio API that'll
  647. 25:11really help us when we record the audio
  648. 25:12from us when we're answering these
  649. 25:15questions.
  650. 25:17Uh this is kind of how I at Amazon we
  651. 25:19are a AWS we're a very document-driven
  652. 25:23culture. I've been in many design doc
  653. 25:25reviews and we actually write our design
  654. 25:27documents very similar to this. We have
  655. 25:29interfaces that we outline. Uh if you
  656. 25:32ever want to see how kind of how the
  657. 25:36sausage is made when you um want to see
  658. 25:39how some of our services are designed,
  659. 25:40kind of take a look at these design
  660. 25:42documents. So I have question response
  661. 25:45the component start screen view.
  662. 25:47>> Uh so just under response, can you just
  663. 25:49scroll up for a second? What is session
  664. 25:52state capture right now?
  665. 25:54>> Questions responses.
  666. 25:56>> Okay, gotcha.
  667. 25:58Yes.
  668. 26:00Oh, and then we have question
  669. 26:03screen.view.
  670. 26:04So, think these are all our components
  671. 26:06that it's going to create. Our score,
  672. 26:09some prompts, question bank.
  673. 26:12It's going to be just a hard-coded file
  674. 26:14for now.
  675. 26:15>> So, is this is this the actual file or
  676. 26:17is it just going to use generate its own
  677. 26:19questions?
  678. 26:20>> It looks like uh it's a static array in
  679. 26:23the application for the MVP. We'll use a
  680. 26:25predefined set of common interview
  681. 26:26questions. So I'm assuming this is
  682. 26:28>> just the structure.
  683. 26:29>> Yeah, the structure of it, but could be
  684. 26:32very similar to these or these. Here's
  685. 26:35our stored session. And then the last
  686. 26:38part we'll come back to it, but that's
  687. 26:39the correctness properties.
  688. 26:42One thing I I noticed out of here that's
  689. 26:44missing is it doesn't really have any
  690. 26:47information about how if we're recording
  691. 26:50audio from our laptops, how is it going
  692. 26:53to
  693. 26:55take that audio and transcribe it? So I
  694. 26:57want to add that feature into it.
  695. 27:00>> Yeah. And I think there's one more thing
  696. 27:01missing too. So once you transcribe it,
  697. 27:04how is it actually like how are you
  698. 27:05going to get the results? Was that was
  699. 27:06that captured?
  700. 27:08>> Yeah, that's a good point. So results,
  701. 27:11we have a session. We have a response.
  702. 27:13>> Guessing we're going to use AI for the
  703. 27:14result generation.
  704. 27:15>> Yeah, we have a results screen with a
  705. 27:17score number, but it's not really like
  706. 27:19this isn't really showing exactly what
  707. 27:22we want, right? We want a little bit
  708. 27:24more information.
  709. 27:26Sometimes I just do a quick search, too,
  710. 27:28if I can't find it. Yeah, test complete
  711. 27:30results. All right. So, what I assume we
  712. 27:32probably want to add in here is a way
  713. 27:34for AI to go in and and do some
  714. 27:38analysis. So, let's add these two
  715. 27:40things. We'll say, "Please transcribe
  716. 27:44the text as the user speaks it." Also,
  717. 27:50let's
  718. 27:52add additional analysis.
  719. 27:56Additional
  720. 27:57that's that's nice thing about uh this.
  721. 28:00I don't have to type right. additional
  722. 28:01analysis.
  723. 28:02>> That's actually my favorite feature
  724. 28:03about AI that I never have to like if
  725. 28:05I'm I make a typo, I never go back and
  726. 28:07fix it.
  727. 28:10>> Exactly. With the results uh using Let's
  728. 28:13just And we could use our favorite
  729. 28:14Amazon Bedrock, but let's use Claude
  730. 28:17Claude um
  731. 28:19>> SDK
  732. 28:19>> SDK
  733. 28:23uh Claude's AI SDK.
  734. 28:28All right. So, now it's going to kind of
  735. 28:30understand what we want and make some
  736. 28:32updates to our design.
  737. 28:34And it's actually even going back to our
  738. 28:37requirements and making some additional
  739. 28:40changes there. So, it's smart enough to
  740. 28:41know like, hey, I know you're updating
  741. 28:42the design, but the requirements aren't
  742. 28:44quite what you mentioned. Now, let's go
  743. 28:45and update the the requirements as well.
  744. 28:49So, now we have uh a microphone button
  745. 28:51that you can click on and now it it will
  746. 28:55transcribe it and it will keep going
  747. 28:59from there.
  748. 29:01There's also, I didn't mention this at
  749. 29:03the beginning, but
  750. 29:05we do have uh an idea of checkpointing.
  751. 29:07So, if you're going through this process
  752. 29:09and you were like, "Oh my goodness, the
  753. 29:11it's way off what I expected," you could
  754. 29:14just click this checkpoint button or in
  755. 29:16this case the restore button and it
  756. 29:18would restore back to its previous
  757. 29:20state. So, this means that you can
  758. 29:22easily go back and forth instead of
  759. 29:24having to rely on your version control
  760. 29:26system and revert the changes and go
  761. 29:28back
  762. 29:30Uh, so it also kind of makes little
  763. 29:33changes. It might find an error. It kind
  764. 29:34of goes back and forth and updates it.
  765. 29:36So now it's creating it's updating the
  766. 29:39design document based on our suggestions
  767. 29:42and we can see what it's doing. Yeah. So
  768. 29:45now here we have the transcribed text in
  769. 29:48our interface as we expect it would be
  770. 29:50there and some better analysis.
  771. 29:53It's also adding in.
  772. 29:54>> So what's the analysis? Go back.
  773. 29:56Analysis result. Okay,
  774. 29:58>> got it. So that's the that's what'll
  775. 29:59capture the
  776. 30:01the the results. There wasn't really a
  777. 30:04results interface before, was there?
  778. 30:07No. Mhm.
  779. 30:11Perfect.
  780. 30:13I love how happy the
  781. 30:16gentic ids are. Oh, perfect. I've
  782. 30:17updated the design document. So we can
  783. 30:20now take another look at it
  784. 30:24and we can say okay now we
  785. 30:26>> could add the transcription service to
  786. 30:27the to the system diagram too.
  787. 30:30>> Let's see. So we have start screen
  788. 30:32question result recording component
  789. 30:34local storage web audio ID. Oh says
  790. 30:36speech detects
  791. 30:37>> and it added the cloud AI too.
  792. 30:40>> Perfect.
  793. 30:41Perfect. All right.
  794. 30:42>> Honestly when when this system diagram
  795. 30:44looks good I'm like yeah looks good to
  796. 30:45me. Let's move forward. LGTM.
  797. 30:49All right, let's move to the next part.
  798. 30:52So now we have we have taken this idea
  799. 30:56that we had we we updated the
  800. 30:57requirements went into the design and
  801. 31:00now we are going to the last phase which
  802. 31:02is the task. Well, I guess it's more
  803. 31:04like the second to last because once we
  804. 31:06have list task we need to implement
  805. 31:08those tasks and there's ways we can do
  806. 31:10that as well.
  807. 31:12And this workflow is um there's a
  808. 31:15actually a lot of feedback we've gotten
  809. 31:17on this workflow on improvements we can
  810. 31:19make. But in general it's pretty
  811. 31:21flexible because it's all built in
  812. 31:22markdown. So you see there's like this
  813. 31:24refine button on the top. So what we
  814. 31:26also have a flow is if you go and like
  815. 31:28make a manual edit. You can refine that.
  816. 31:32Clicking refine will basically take that
  817. 31:33edit and and kind of introduce
  818. 31:36integrate it into the rest of the design
  819. 31:38doc. So if you do that in the
  820. 31:39requirements, it'll generate like the
  821. 31:40user story in acceptance criteria in
  822. 31:43years format which we'll talk about. Um
  823. 31:46and you can same thing on the design and
  824. 31:48actually even same thing on task list.
  825. 31:49So like let's say you've done three or
  826. 31:51four tasks and you're like hey I
  827. 31:53actually want to change something cuz
  828. 31:55often this is in real life right we
  829. 31:57implement four t four tasks and we're
  830. 31:59like hey actually like now I want to
  831. 32:00change something cuz it didn't this is
  832. 32:02not what I wanted to do. you can go and
  833. 32:03make changes out of band and and
  834. 32:05clicking the update tasks will refresh
  835. 32:08uh the will refresh. So Kira will look
  836. 32:11at your codebase and actually see what's
  837. 32:12done and and uh update the the upcoming
  838. 32:16tasks as well. So now it's at a part
  839. 32:19where yeah we have this task list of all
  840. 32:22these tasks uh and we also have an
  841. 32:24option to keep the optional tasks or
  842. 32:26make them all required. And here are
  843. 32:28these property based testing uh which
  844. 32:31are all optional right now. Let's what
  845. 32:34do you think Nikl should we just keep
  846. 32:36all optional tasks for fast?
  847. 32:38>> Yeah, let's just keep it optional test.
  848. 32:39This was actually a flow a lot of people
  849. 32:40asked us when we we didn't have this
  850. 32:41flow when we first launched but um what
  851. 32:44was happening was that for every feature
  852. 32:46you had a lot of unit tests and people
  853. 32:48sometimes wanted to see the see the end
  854. 32:50product before they get to the tests but
  855. 32:52they wanted the test. So we introduce
  856. 32:53this flow to keep tasks in this uh keep
  857. 32:56tasks spelled out but set to optional by
  858. 33:00default.
  859. 33:03>> Okay. So
  860. 33:03>> should we take a look at the task list?
  861. 33:05So we can do the same thing here. We can
  862. 33:06refine this task list as well now. So uh
  863. 33:09is it can we see like uh I keep
  864. 33:11scrolling down. So you got create the
  865. 33:13data models, implement audio recording
  866. 33:16service,
  867. 33:19implement response validation storage,
  868. 33:22the AI integration. One thing you may be
  869. 33:24thinking about, hey, I have this list of
  870. 33:26tasks, but I want to get to something
  871. 33:27like right away that I could test.
  872. 33:30So another idea too is we could refine
  873. 33:33this list and reorder it.
  874. 33:36>> Yeah, let let's ask I I I think so. So,
  875. 33:38I think let's let's ask Hero to
  876. 33:41like I'd say prioritize getting
  877. 33:44[clears throat] an MV how how should we
  878. 33:46frame this? Prioritize getting an MVP
  879. 33:49scope together by task five,
  880. 33:53right? So, we have something to see.
  881. 33:57There's a product there's like a product
  882. 33:59analogy here where like you when you're
  883. 34:00building a car you first start with a
  884. 34:02skateboard and move to a bike and then
  885. 34:04build a car or you can choose to build
  886. 34:06the wheels you can build the engine and
  887. 34:07then stitch together stitch together
  888. 34:08everything at the end. The better way to
  889. 34:10build a product is is you you build
  890. 34:12interim steps so you always have
  891. 34:15something that's workable,
  892. 34:18right? Yeah. This is very flexible. We
  893. 34:21can kind of move these tasks around. And
  894. 34:23I kind of like that idea of getting to
  895. 34:26the first five tasks that has an MVP we
  896. 34:29can show you, especially in this time
  897. 34:30short time we have together today.
  898. 34:33So that I think that that would work
  899. 34:35well. I also sometimes just have it
  900. 34:38condense tasks down. Like if I see it
  901. 34:40has like 25 tasks, I'll be like, "Whoa,
  902. 34:43why do we have 25 tasks? Can you just
  903. 34:45can you make it into like 10 tasks?" And
  904. 34:47then it'll kind of group some more
  905. 34:48together. or some people who does test
  906. 34:51first development who who writes their
  907. 34:53tests first.
  908. 34:55Okay. All right. A couple people over
  909. 34:57here.
  910. 34:58>> No one likes tests.
  911. 35:00>> So maybe that's the workflow that you
  912. 35:01like. Then you can set this up. Write
  913. 35:03all the tests first. Let's do test first
  914. 35:05driven development.
  915. 35:07All right. So we have now we have I
  916. 35:10think for the for this uh a core MVP
  917. 35:13with one, two, three, four, uh five
  918. 35:16tasks. even has task two or phase two.
  919. 35:19So let's see
  920. 35:20>> is there UI state captured in the first
  921. 35:23five
  922. 35:23>> setup dependencies create core data
  923. 35:25types implement application state
  924. 35:27management implement audio recording
  925. 35:28speech test implement response
  926. 35:30validation storage
  927. 35:33create start screen component. Oh, so it
  928. 35:35looks like the first phase may not even
  929. 35:37have the UI.
  930. 35:39>> Should we should we ask it to have some
  931. 35:42UI? Yeah. Adds
  932. 35:45uh UI to the initial phase
  933. 35:49>> so we can actually visually test it.
  934. 35:51>> So we can visually
  935. 35:54>> play with it. Yeah.
  936. 35:55>> Test it.
  937. 35:57>> Good call out.
  938. 36:00>> That's we did a run through of this.
  939. 36:02Like it's it's interesting because we
  940. 36:03did we've done like now three
  941. 36:04runthroughs of this and every time it's
  942. 36:07a little different, you know, like every
  943. 36:08time like last time we did it, it it it
  944. 36:10was it got it got this in the first run.
  945. 36:13So it's it's it's super interesting.
  946. 36:17Yes. That's why you always read it. You
  947. 36:19I mean we have to all when we're using
  948. 36:22coding agents and and Gentic IDs, you
  949. 36:24have to read it and pay attention to
  950. 36:26what it's doing because otherwise it
  951. 36:28will do things that we don't expect. All
  952. 36:30right. So, it looks like it it reordered
  953. 36:32it again. Now, it's it's task one
  954. 36:34through 10, though. Um, until it gets
  955. 36:38into phase two,
  956. 36:41I think for the sake of time, because we
  957. 36:44only have about 20 minutes together,
  958. 36:45let's let's see if we can start
  959. 36:48implementing some of these tasks.
  960. 36:51And I do have an after. So, if it
  961. 36:55doesn't get through all of them, we'll
  962. 36:56still show you what it comes up with
  963. 36:58afterwards. How's that sound? Yeah,
  964. 36:59sounds good to me.
  965. 37:01>> So, we'll start task here. And you can
  966. 37:03see we can do start a task a couple
  967. 37:04different ways. We can just click in the
  968. 37:06UI or we can talk to it in the chat. So,
  969. 37:09I'm going to start task. Start task.
  970. 37:12I'm just How about we do five?
  971. 37:15Yeah.
  972. 37:15>> And we'll do six because that has the
  973. 37:17start screen component.
  974. 37:18>> Yeah. And right now, what it's doing,
  975. 37:20it's it uh it's going to go into the
  976. 37:24terminal. It's going to run some
  977. 37:26commands. Now, typically, you can see
  978. 37:28here we have a whole task list. Uh
  979. 37:31there's task the cued. So, it's going to
  980. 37:33do task one and then it's going to do
  981. 37:35the rest of the task afterwards. These
  982. 37:37actually need to be done in order. Uh
  983. 37:39that's why it it does it this way. You
  984. 37:42can also just take a look at it. It's
  985. 37:44now starting to do it. It this one was
  986. 37:46pretty easy. Just had to like make a few
  987. 37:48files and install a few npm
  988. 37:50dependencies.
  989. 37:52And then I can kind of look at the next
  990. 37:53one and see it's starting task two. It's
  991. 37:55going through it pretty quick. This this
  992. 37:57will probably take a little bit of time.
  993. 38:00>> So while this is happening, why don't we
  994. 38:02uh pivot to talk about property property
  995. 38:04testing?
  996. 38:05>> Great.
  997. 38:06>> Um maybe switch to the design view.
  998. 38:09>> Yes. Cool. So I'll just give a little
  999. 38:11bit of an overview. So there's a reason
  1000. 38:13why we went with in the requirements we
  1001. 38:15went with this user story acceptance
  1002. 38:17criteria format. And the acceptance
  1003. 38:19criteria are structured in what's called
  1004. 38:22years which is easy approach to
  1005. 38:24requirement syntax. Believe that's
  1006. 38:26that's it. Uh but what what what that
  1007. 38:28means is that when you define something
  1008. 38:30it says when you do this the system
  1009. 38:32shall do y and that allows us to create
  1010. 38:36uh essentially logical equivalence and
  1011. 38:38do things like formal reasoning on the
  1012. 38:41actual requirements. So that's really
  1013. 38:43what a property is. Uh you know there's
  1014. 38:45a definition of a property here. it's a
  1015. 38:46characteristic or behavior that should
  1016. 38:48hold true across all executions of a
  1017. 38:50system. So what we do is we take the
  1018. 38:53year's format requirements extract
  1019. 38:54properties and then from those
  1020. 38:56properties we actually there's a
  1021. 38:58framework called fast check that allows
  1022. 39:00you to actually test those properties
  1023. 39:02and unlike unit testing that has like
  1024. 39:05limited inputs uh you know the inputs
  1025. 39:07that you provide to the system to test
  1026. 39:08the output with uh property testing you
  1027. 39:11it actually fuzzes a whole bunch of
  1028. 39:13values across a range. So it generates
  1029. 39:16more evidence that you've when you have
  1030. 39:18a requirement the generated output maps
  1031. 39:21to the requirement right so that we're
  1032. 39:23thinking about this whole world of specs
  1033. 39:24in a very first principles approach
  1034. 39:26right like how do you how do you solve
  1035. 39:28the problem in the AI world where you
  1036. 39:30where the out generated code actually
  1037. 39:33matches the user's intent and property
  1038. 39:36based tests are like the first way we're
  1039. 39:37going about it but we're there's a lot
  1040. 39:39more we have planned
  1041. 39:42>> yeah it's pretty powerful everything you
  1042. 39:44and do with it. I'll I'll show you an
  1043. 39:45example. I did this uh I'm a I'm a chess
  1044. 39:48fan. I created a I vibe coded or spec
  1045. 39:50coded, I guess you could say, a chess
  1046. 39:52app. Uh and I was for me and my son and
  1047. 39:57we were we wanted to make sure that it
  1048. 39:59worked as it expected. So here is a list
  1049. 40:02of property based tests for this other
  1050. 40:04application that we created. And you can
  1051. 40:06even see if you hover over it, it tells
  1052. 40:08you what the test was for. This really
  1053. 40:11does test those requirements. uh fast
  1054. 40:13check is by the way if you're using
  1055. 40:14Python or a different language there are
  1056. 40:17other libraries that do that do does
  1057. 40:19this property based testing so I can
  1058. 40:22even take a look at it uh it says all
  1059. 40:24property based tests passed for any
  1060. 40:26board to stay in the AI gener move the
  1061. 40:27move must be valid against the movement
  1062. 40:29registry and so here's the test and you
  1063. 40:32can see the uh for those of you are
  1064. 40:35looking at imports from npm it's this FC
  1065. 40:38from fast check
  1066. 40:40and we write here we write our test we
  1067. 40:44do an assert on it we have create board
  1068. 40:46state and then one thing that I find
  1069. 40:48really interesting is this numbum runs
  1070. 40:50at the end so it's going to it's
  1071. 40:52basically doing fuzzy testing it's
  1072. 40:54making it changes random changes to the
  1073. 40:57test file and it'll actually run over a
  1074. 41:00hundred times to make sure it is as you
  1075. 41:03expected and I will say adding these
  1076. 41:06property based testing makes the output
  1077. 41:08of your code at a much higher quality
  1078. 41:11and oftent times less bugs.
  1079. 41:15And I you can see here it just goes
  1080. 41:17through a bunch of different tests to
  1081. 41:19check to see if the move is valid.
  1082. 41:22Where are we in our demo? So we have
  1083. 41:26step task five. Looks like it's on task
  1084. 41:29six now which will take uh a moment.
  1085. 41:33>> So as the tasks get done, it also marks
  1086. 41:35it off in the implementation plan. So
  1087. 41:39if you take a look at this.
  1088. 41:40>> So here's our job seekers app we've been
  1089. 41:42creating. You can see we have nice
  1090. 41:43little check marks next to everything
  1091. 41:46and it's diligently working on task six
  1092. 41:50which is this.
  1093. 41:51>> What happened right now is one of my
  1094. 41:52favorite features we launched recently
  1095. 41:54like the diagnostics tool. So because we
  1096. 41:57own the overall ID interface when there
  1097. 41:59are problems like so if you go to the
  1098. 42:01problems tab in in your um editor
  1099. 42:04typically reports like your your lint
  1100. 42:06linting issues and the agent is able to
  1101. 42:08read it. So we used to have a lot of
  1102. 42:11problems with specs like you'd have five
  1103. 42:14tasks generated and you open problems
  1104. 42:15tab you'd see like there's like six or
  1105. 42:17seven issues to fix but like ever since
  1106. 42:20we've had this added this diagnostics
  1107. 42:21tool it's been really great.
  1108. 42:23>> So it completed step six. I'm not sure
  1109. 42:25if this it wanted me to go to 10. We
  1110. 42:27could keep it going. Let me see. I'm
  1111. 42:29just doing an npm rundev because I want
  1112. 42:30to give everyone here time to ask us
  1113. 42:32questions and to show our quick
  1114. 42:34optimized demo at the end. So, if I open
  1115. 42:37up 5173. Oh, looks like it didn't
  1116. 42:40finish. It still has a hello world. I
  1117. 42:41think it probably didn't link the
  1118. 42:43component the start.
  1119. 42:44>> Why don't you just go ahead and do do
  1120. 42:46the other ones and you can while it's
  1121. 42:47happening, you can switch to the
  1122. 42:50finished app so people have time to ask
  1123. 42:51questions.
  1124. 42:52>> Yes. Okay. We're going to cue all these.
  1125. 42:55Uh you can see here though,
  1126. 42:58>> last time we did this in five tasks, it
  1127. 43:00was done. So you can see it's starting
  1128. 43:02to create the components that that we
  1129. 43:04want. Um some use states. These are like
  1130. 43:08hooks in React.
  1131. 43:10Okay, let's take a look at our final
  1132. 43:13app.
  1133. 43:16I'm going to run dev on this. You see
  1134. 43:18here, same principles as the app I'm
  1135. 43:21showing you. We have our spec design
  1136. 43:23requirement task
  1137. 43:26and so this is what it looks like. Uh
  1138. 43:28it's an interview prep practice. So we
  1139. 43:30have behavioral question, technical
  1140. 43:32questions and leadership questions. It's
  1141. 43:33connected to uh a claude sonnet 3.7
  1142. 43:38model I believe. So which one do you
  1143. 43:40want to try?
  1144. 43:41>> Um just pick pick one. Let's do let's do
  1145. 43:44uh technical.
  1146. 43:46>> Sure. And I'm going to allow this time.
  1147. 43:49So explain a a complex technical concept
  1148. 43:52from your field to someone.
  1149. 43:54Hello, let me explain about websites.
  1150. 43:58There's a server and there's a client
  1151. 44:02and our website has to interact. It can
  1152. 44:06run locally. We can have single page
  1153. 44:08applications. We can have serverside
  1154. 44:09rendered apps.
  1155. 44:12>> This could keep going.
  1156. 44:13>> As you can see, we've gotten pretty low
  1157. 44:15scores in our every time we play to
  1158. 44:17this. [laughter]
  1159. 44:19Probably not going to pass the interview
  1160. 44:21with that, but for the sake of this
  1161. 44:23demo, we'll keep going. It's actually uh
  1162. 44:25one thing it keeps the last answer from
  1163. 44:28the last one we ran in here. It's just
  1164. 44:30something we didn't change yet. Describe
  1165. 44:32a challenging technical problem you
  1166. 44:33solved recently. What was your approach?
  1167. 44:35What was the outcome?
  1168. 44:38>> I'd say this app, right?
  1169. 44:40>> We learned about the web APIs. We
  1170. 44:42learned to create a specriven
  1171. 44:45development to create this application
  1172. 44:47I'm using right now. I learned about a
  1173. 44:50little bit about Vit and React and
  1174. 44:52property based testing and I got to do a
  1175. 44:55demo in front of 100 people.
  1176. 45:00Okay.
  1177. 45:03How do you stay current with new
  1178. 45:04technologies industry trends? We should
  1179. 45:06ask the audience this. I'm sure they
  1180. 45:07have lots of interesting answers.
  1181. 45:10I I attend reinvent amazing events,
  1182. 45:14amazing talks. I also go and look at
  1183. 45:18builder center that AWS uses to tell
  1184. 45:23people about our latest tech. Uh I go to
  1185. 45:27conferences. I look at Stack Overflow. I
  1186. 45:32I go online to YouTube and watch a bunch
  1187. 45:35of technical creators.
  1188. 45:37Maybe I'll get a little higher score for
  1189. 45:39that. So then I click finish, get score.
  1190. 45:42And now it's taking all this. It has a
  1191. 45:44very simple system prompt uh that just
  1192. 45:47does an analysis on it. And it should go
  1193. 45:51and grab the information. It sometimes
  1194. 45:53takes 30 to 60 seconds.
  1195. 45:57>> Nice. You got four out of 10 this time.
  1196. 46:04And of course, the candidates
  1197. 46:06demonstrate some relevant technical
  1198. 46:07knowledge, engagement with the industry,
  1199. 46:08but the response lacks structure,
  1200. 46:09clarity, and depth. Um, so great
  1201. 46:12interview prep that we could use and
  1202. 46:14literally just took us not so long to
  1203. 46:17put it together.
  1204. 46:19And looks like it did actually complete
  1205. 46:21this as well.
  1206. 46:22>> It'd be nice to see something a little
  1207. 46:23more than hello world after.
  1208. 46:26[sighs and gasps]
  1209. 46:27>> All right. Well, let's give some time.
  1210. 46:30Um, let me switch back to Do we want Do
  1211. 46:33you guys want to see what it it came up
  1212. 46:34with after step 10 that we're not faking
  1213. 46:36this?
  1214. 46:37>> I do.
  1215. 46:38>> Okay, let's see here. Okay, this is what
  1216. 46:41it This is what it came up with. Start
  1217. 46:43interview prep. Look, tell me about
  1218. 46:46yourself and your background.
  1219. 46:48Allow this time. Test test test. Hello.
  1220. 46:50Hello. Hello.
  1221. 46:53Okay, so it's duplicating it. Maybe we
  1222. 46:56could go back and have it do something
  1223. 46:58else. greatest strengths. This is my
  1224. 47:00greatest strengths. Test, test, test.
  1225. 47:02Okay, you get the idea. One thing I
  1226. 47:04didn't do is I didn't put my anthropic
  1227. 47:05claude key in here, so it's definitely
  1228. 47:07going to fail at the last step.
  1229. 47:09>> Oh, you Oh, yeah, you forgot about that.
  1230. 47:11[laughter]
  1231. 47:12>> Okay.
  1232. 47:12>> Uh, test test. And I think
  1233. 47:17right here I maybe it's not even using.
  1234. 47:20That's amazing. [laughter] That's all
  1235. 47:22you need to do, guys.
  1236. 47:27All right, let's switch our point.
  1237. 47:30>> Well, I mean, I think we're we have 12
  1238. 47:32minutes left. I I think we we got
  1239. 47:34through the the core workflow that we
  1240. 47:36wanted to talk about. I think just one
  1241. 47:38thing to keep in mind in specs, like we
  1242. 47:39launched this and like there was a lot
  1243. 47:40of positive momentum and adoption around
  1244. 47:43specs, but this is just the start. As I
  1245. 47:45said, we're we're solving like first
  1246. 47:47principle problems on the requirement
  1247. 47:48side. How do you know often what we do
  1248. 47:50is like we do things like scenario
  1249. 47:52planning, right? like or scenar but like
  1250. 47:55when we actually build something like
  1251. 47:56hey when when you do when the user does
  1252. 47:58X and Y what's the expected behavior
  1253. 48:00right that doesn't really translate well
  1254. 48:02into like the structured kind of doc we
  1255. 48:04have here but there's clarity on
  1256. 48:05requirements as a concept how how do you
  1257. 48:08know your task list matches um uh your
  1258. 48:11task output matches your intent is
  1259. 48:13another area we're just continuously
  1260. 48:15going to invest in and I'm actually
  1261. 48:17super excited about this journey with
  1262. 48:18specs we're on and I'm very excited to
  1263. 48:20come back next year and talk about all
  1264. 48:22the cool things we do with specs over
  1265. 48:23the cold over the year.
  1266. 48:25>> Me too. And also just looking at it, it
  1267. 48:27never implemented the cloud AI
  1268. 48:28integration. That was the MVP didn't
  1269. 48:30have that integration,
  1270. 48:31>> but you got a 9 on 7 on 10. So, you
  1271. 48:33know, it's better off.
  1272. 48:34>> I know. [laughter]
  1273. 48:39>> A git repo. Um,
  1274. 48:41>> yeah, we'll put it up. Sure,
  1275. 48:43>> we can put it up.
  1276. 48:44>> I don't have one right now, but we we
  1277. 48:46can certainly do that.
  1278. 48:48>> You could use the oneclick git
  1279. 48:50integration on Kira. Oh, really?
  1280. 48:52>> Yeah,
  1281. 48:53>> that's We'll have to try that.
  1282. 48:56>> You just You click here
  1283. 48:58>> and you add them to your source changes.
  1284. 49:00Oh, you're you're back on Oh, you're no
  1285. 49:02longer on the demo. Never mind. I was
  1286. 49:04going to demo another feature. Cool. Um,
  1287. 49:08>> thank you.
  1288. 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.