← All AI Engineer talks

AI Engineer World's Fair 2025

Vibe Coding at Scale: Customizing AI Assistants for Enterprise Environments

About this talk

An interactive enterprise-oriented vibe-coding workshop contrasts outcome-first experimentation with more disciplined AI-assisted development, demonstrates model-generated application design, and discusses agent auto-approval and associated safety concerns. The presenter explores external tools and reusable prompts before explaining Model Context Protocol integration, the transition from legacy HTTP-plus-SSE to Streamable HTTP, and server-initiated sampling through a client's language model.

Chapters

  1. 0:15Outcome-first vibe coding and professional guardrails
  2. 13:07Agent auto-approval and interactive safety questions
  3. 19:37Hands-on model comparison and generated application design
  4. 54:25Research tools, MCP, and Gists-based prompts
  5. 1:02:34Streamable HTTP and MCP client-side sampling
  6. 1:14:15Audience discussion and workshop wrap-up

Talk transcript

  1. 0:00

    [upbeat music] Okay.

  2. 0:15

    Uh, thank you. We have, um, Vibe Coding at Scale. It's a talk. I'm gonna give you the expo in a very short version without all the hands-on stuff. So this is whatever, how long this will take.

  3. 0:25

    And it's all about vibe coding, so we're gonna give fully into the vibes, embrace exponential, and forget that code exists. It is about focusing on the output and not actually on the code, and that's where, where people disagree, like, if I don't look at my code as an engineer, what am I?

  4. 0:43

    Um, and then if... What does even embracing exponentials mean in this case? So, and that's, we're gonna get into that, and, but we're definitely gonna forget that code exists.

  5. 0:55

    And I think, uh, the, at the Anthropic Conference two weeks ago was a great chart of how exponentially agents run longer and longer and generate more and more code.

  6. 1:05

    So slowly forgetting that code exists and you wanna review every piece of code, but building trust and adding guardrails to the AI w- is what this talk is about.

  7. 1:17

    And this vibe coding journey starts kinda initially what pe- most people saw of just like, "I build an app in just one day and I put it online and I made money and I..."

  8. 1:27

    Then things happened to the app and things got leaked and things were no longer fun. And that c- that's that fun chaos state of vibe coding. And we're trying to move to professional zen, and that initial state is what I'm now terming YOLO vibes.

  9. 1:43

    It's the unofficial wording, but it's all about creativity and speed. And it's a good place to be. It's being, it's, it is instant gratification, it's getting things up. It's about learning.

  10. 1:55

    It's not about shipping products. But, and so we need to get there.

  11. 2:00

    Second stage is structured vibes. It's all about balance and sustainability. Like, how do you bring maintain- maintainability, more readable code? Like, things you might actually, somebody in the end might wanna read that code, and you have a handover to somebody else.

  12. 2:16

    And you wanna have some quality control that what you built is maintainable and not just a throwaway project.

  13. 2:25

    And lastly, we get to spectrum vibes. And if you have done anything on Reddit or on blogs in the, in the past, then you, past few weeks, you've probably seen people sharing their kind of best practices.

  14. 2:35

    "This is how I finally got good value out of AI." And those are, those best practices are emerging, but they bring you that scale, reliability, and velocity that, that comes with that, while still hopefully giving you some speed and gratification along the way.

  15. 2:51

    But reducing that chaos, while maybe keeping the fun.

  16. 2:56

    So v- vibe coding initially where we see this outcome first, as I said, it's all about not, you not, don't even wanna look at the code. Like, if you're in an editor, and I see actually people framing their experience in AI editors of a low-code mode.

  17. 3:12

    So they, they just look at a chat panel and look at whatever comes out of it, and that's the outcome first. It's all about natural language. It's all about just staying in the flow and doing, working with the AI.

  18. 3:25

    And it's about auto-accepting changes. So until it maybe no longer works, we might wanna undo, but otherwise we just keep talking to the AI. "No, you did this wrong.

  19. 3:34

    Try again." Um, "Fix it or go to jail" is a very popular one. So you can do, try all kind of... But stay in natural language. Don't, don't be too specific.

  20. 3:46

    So there is a use case for that, though. You wanna get a sense for YOLO vibe coding for rapid prototyping, for proof of concepts where you just wanna get something out.

  21. 3:56

    And that's why I actually have a ton of conversations with larger companies who wanna, who start a conversation like, "How can we do vibe coding?" And for them, it's all about getting people who are non-technical to be able to communicate ideas.

  22. 4:10

    It's about UX people just making a mockup and being able to bring that to a meeting and being able to communicate what they wanna do in the mockup. It's all about learning.

  23. 4:20

    Like I, we had last, uh, two weeks ago at Build, we ha- they had one hour of vibe coding on stage live. And people build games, and I use Three.js, which I have tried many years ago, but I haven't used Three.js in a while.

  24. 4:35

    But once I got the code running, I could start getting into, like, how is it structured, how does it make shapes? And I could actually understand technology because I have something working.

  25. 4:45

    And that's, that's really the power of getting something up and running that, that gives you the technology something hands-on to actually try out. And of course, personal projects. So, um, unsure how many of you had sit, sit down with somebody who's non-technical and showed them vibe coding and just build a wa- your water tracking app, or you

  26. 5:02

    build something with your kids. There's all kind of personal projects you can now finally solve over the weekend thanks to YOLO vibe coding.

  27. 5:12

    So let's do some YOLO vibe coding. This is, uh, AI generated, so the, the images do reflect the vibe. So this is really about voice input, relaxing. I guess coffee is in there as well.

  28. 5:23

    But let's get it going. Um, okay. So in VS Code for YOLO vibe coding, we're gonna start with an empty VS Code. So hit Command, Shift, N.

  29. 5:39

    Insiders. Sorry? Are we supposed to use Insiders in VS? I might show off Insider stuff, but all of what I'm showing is also in Stable. If you have Insiders, use Insiders.

  30. 5:47

    Insiders is the pre-release version of VS Code that ships on a daily basis, like Firefox Nightly, uh, Chrome Canary, Dev, where it ships nightly.

  31. 5:59

    So on your left side, you will have no folder open. On your right side, you will have Copilot open. Everybody got this?

  32. 6:09

    Raise your hand. Cool. Awesome. [laughs] So, um, who has used agent mode? Just checking so I not have to explain everything. Okay, cool. So agent mode, uh, the probably the default you wanna have set, and default with setting.

  33. 6:25

    Um, Claude Sonnet four is great at front-end stuff, so for me personally, my, my favorite. Is it big enough? Yeah.

  34. 6:33

    And now what's interesting, so just one, one quick tour of how we're gonna do vibe coding is, there's actually this interesting setting here. Is this zooming? Yeah. Is New Workspace in VS Code.

  35. 6:46

    And for this first round of vibe coding, I want you to go into this tools picker down here and actually disable scaffold new workspace. 'Cause it will help you scaffold your workspace, but it will lower the vibes if you're just trying to do HTML coolness.

  36. 7:05

    So how do you get to that menu? Oh, yes. Uh, tools picker down here.

  37. 7:10

    That's the little one. Uh, how to get into this menu, there's a tool- Ah. This tools picker. Okay. [speaking faintly]

  38. 7:19

    Uh-oh. [laughs] Yes. It might be in a dif-- it was in a different spot before. Um, if you don't see, check that you're in agent mode. Otherwise, you don't have tools.

  39. 7:29

    Oh, okay. [speaking faintly] Yes. That's right. Yeah. Okay. First step, into the panel is switch to agent mode down here. It should-- might be in Ask by default. Yes, it is.

  40. 7:40

    Cool. And then second step, go into the tools menu, which only appears in agent mode. Soon, agent mode's gonna be default and this whole "Where is my, my tools picker?"

  41. 7:53

    is less of a problem. Okay, so n- and then what you wanna uncheck is this new section.

  42. 8:02

    And we're gonna check out new- MCP server and install extension. Yes. Do you see nothing? And I see those two items and nothing else. That's not enough. I, I see more, more of you see.

  43. 8:13

    Um, you might be... Yes, I think that's fine. Let me just-

  44. 8:19

    Let me check Insiders ahead. Shoot. Or it's not Insiders. Okay. Good. Insiders. [laughs]

  45. 8:25

    Yes, uh, anyway, this is actually... It's very recent and we're actively working on that, so keep it, keep it checked. It's fine. So let, let's actually use it. Um, let's start with our first vibe coding using you because it's so hard to disable.

  46. 8:36

    And the way we're gonna do this is, um, create a, uh, let's do React Vite. And that first lesson for vibe coding, use stacks that are kind of popular in front-end where the AI doesn't have to reason too much and make wild guesses.

  47. 8:51

    So React and Vite are good ways to run a project. Um, website that for what do we do? Um, hydration tracking.

  48. 9:04

    Water hydration, water consumption app. Simple and big accessible UI following, uh, what do we tell the AI to make it really beautiful?

  49. 9:19

    We tell it, uh, I like to tell it Apple design principles.

  50. 9:27

    You can infuse it with whatever design sense you have. Mine is just make it look pretty, which always helps somehow adding, adding that extra. So Vite water tracking hydration, and that's really it.

  51. 9:39

    So we don't give it any constraints. We don't tell it how many buttons, like is it mobile friendly, is it not mobile friendly, is it, um, what CSS language to use.

  52. 9:49

    Uh, I might actually not do React Vite, but might-- Oh, yeah, let's do that with Material then. With Material,

  53. 9:56

    Material design. So yeah, now we got the stack, we got a design direction, and we tell- told it to make it pretty. Okay.

  54. 10:08

    And then hit Run. So we're now in, in a no folder state. So what's first happening, it's gonna tell us to empty-- to open an empty folder. E-everybody got that in their flow?

  55. 10:19

    Okay. Just gonna hit Continue. Now it's gonna actually ask me to open a folder. We're gonna make a new folder, vibing at

  56. 10:30

    NAI Engineering. Put that anywhere where you put your stuff, where you put your code. And now it's actually opening a new folder, and it's gonna continue to set up.

  57. 10:44

    And to explain a bit what's happening here, so this is using the new command. A new command is, is optimized for creating projects from scratch, which if you look at the internet of how people evaluate [laughs] AI coding tools is what every second person does.

  58. 11:00

    Can it make me a water tracking app? Can it make me a movie database app? And so we optimize for this flow, but also it makes for this nice vibe coding from scratch, because everybody struggles with what is the right stack, how do I get started, and this is what this is here for.

  59. 11:17

    Uh, we got the latest, so we c- we can now review the commands. And this is maybe where we do the first tweak of our settings. So if you go into Settings and search for Approve, you will find the Auto Approve.

  60. 11:31

    And that's the first rule of vibe coding. As we said, we, we don't wanna look at code, and we just wanna have the AI do stuff. So

  61. 11:41

    what you can do, in my, my case, I'm gonna actually go to-- over to Workspace, from User to Workspace, and that means that setting is only set for this workspace, which is the safest way to use this setting.

  62. 11:52

    So use with caution. I'm gonna auto-approve, which means all of these Continue buttons won't happen anymore, and we're just gonna get results. So check that box, close it again, and we can hit Continue here.

  63. 12:08

    This is using Vite. This is fine. Now, now we're gonna stop worrying about the code, uh, but I can still read the plan. So install Material UI dependencies, create hydration tracking, Apple-inspired design, and project structure.

  64. 12:22

    So it's running commands. Um, why are there still files already in here?

  65. 12:29

    Okay, cool. Skips. What did it create? Oh.

  66. 12:46

    Where's the music coming from? Because I already did something. Cool. Okay, we're on... Yes, keep going.

  67. 12:55

    In this case, it tried to create something, and then it ran another terminal command. Keep going. That's fine.

  68. 13:04

    Is it doing stuff for you? Do you see things popping up?

  69. 13:07

    Where was the auto-approve setting?

  70. 13:09

    I can't find auto-approve.

  71. 13:11

    Oh, the auto-approve?

  72. 13:12

    It d- it doesn't look like it's in the-

  73. 13:15

    Under Code Insiders settings.

  74. 13:18

    It's not Insiders. I'm not using Insiders. I guess I could be.

  75. 13:21

    Oh, wait. Did we-- I thought it was in the last version.

  76. 13:23

    Well, Insiders could-

  77. 13:24

    I have Insiders. I just haven't switched back to it.

  78. 13:26

    Okay. Okay.

  79. 13:28

    Well, I couldn't find it either, and I even went into Code Insiders, the dropdown.

  80. 13:33

    Okay.

  81. 13:34

    It wasn't in non-Insiders, though. Was it?

  82. 13:37

    Uh-

  83. 13:37

    Let me, let me check in VS Code Stable.

  84. 13:39

    Here, wait. On here? This should-

  85. 13:40

    Uh, show Status Bar. Yeah, that's my, my problem of not being enough in Stable. I shouldn't run workshops. [laughs]

  86. 13:50

    Then-

  87. 13:50

    There you go.

  88. 13:53

    Where is it? Wait. Why is that different than what came from Jesus?

  89. 13:58

    So you found it in-

  90. 14:00

    Yeah.

  91. 14:00

    Inside-

  92. 14:01

    Thank you so much. It-- There's two ways to get to the same thing, but it's a different menu. But it looks the same.

  93. 14:06

    Oh, just-

  94. 14:07

    Anyway. Yeah.

  95. 14:08

    The settings?

  96. 14:09

    There's settings from the bottom and settings from the top, and they're not the same.

  97. 14:13

    Wow.

  98. 14:15

    Okay.

  99. 14:16

    I'm happy to go figure that out later.

  100. 14:18

    There's settings up here.

  101. 14:19

    The one, the one-

  102. 14:20

    I used the gear, I used the gear symbol from the bottom.

  103. 14:23

    Yeah.

  104. 14:23

    It didn't work. But anyway.

  105. 14:25

    The settings from the-

  106. 14:26

    He, he got in the top bar.

  107. 14:28

    If you hit-

  108. 14:28

    Okay. Where's the other one?

  109. 14:31

    Like the one in the-

  110. 14:33

    Oh, in the other setting? Yeah. Yeah, I have customized my UI too much as well. [laughs] Cool. Question.

  111. 14:40

    Is there a way for this to run... I know it keeps telling you to run this main terminal, but like Cursor, it, it gives you the capability to actually have it run.

  112. 14:53

    Yes, that's, that's what we... I think I should have said auto-approve before, so it's active for the chat session. But this is the setting I just showed is the, is the auto-approve.

  113. 15:00

    So you, you... All the Continue buttons are basically gone, and it just auto-approves.

  114. 15:05

    So it's running code from a session then, is that correct?

  115. 15:07

    Yeah. Yeah. And for MCP tools, we actually do have dropdowns to allow, always allow for session and always allow for workspace and/or not always allow. So there's some more fine-grained things we're rolling out to more tools.

  116. 15:22

    But for-- Yep.

  117. 15:23

    It still prompts you to continue when it currently-

  118. 15:25

    Yeah, I think it's the auto-approve is not applied to the current session. That's... I, I showed it too late. I should've done it the other way around.

  119. 15:34

    Okay. We got some material design coming in,

  120. 15:37

    and this is where you need to get your coffee and just wait. Hopefully. Mm. That's a good idea. Let's do that. Okay, uh, open your window. [laughs]

  121. 15:51

    Um, okay. What, what prompt did we use? Create a Vite. So okay, now do, in the new window, gonna do auto-approve first.

  122. 16:01

    Um, ap-approve. [laughs] Auto-approve is already on. That's good. Um, this is another window now, and we're gonna do the same thing, and we're actually gonna use material design. I guess And is still out there, right?

  123. 16:14

    And? Or Fluid. Fluent. That's the Microsoft one.

  124. 16:20

    Let's see what that looks like. Again, it's gonna prompt me for a folder.

  125. 16:26

    Um, vibing at AIE two. And this is, I think, one of the key takeaways, like trying out different ways to get to the same result is where vibe coding really shines, is...

  126. 16:44

    Continue. It's just trying... I, I had really big success of just like what are different sign-up flows that we can create? Like create three different versions of this design to explore what this could look like.

  127. 16:57

    Okay, it installed. It's updating the next in the, in the One Script, and that's where it gets confusing. If you have multiple open now at the same time, you gotta figure out what's running what.

  128. 17:07

    And now this flow actually over here runs without any confirmation. So we, we set auto-approve in a correct order.

  129. 17:14

    Then it's now just creating Vite, installing, installing Fluent.

  130. 17:23

    You notice that it got the wrong Fluent because there's a, there's a dependency. Now it's fixing those.

  131. 17:29

    Can you show one more time how to get to that auto-approve setting?

  132. 17:35

    Yes. So the way, um, I, I do Command comma is the quick way, so I don't use menus. I should use menus. Um, so you go up here. I have my settings up here.

  133. 17:47

    Most probably have them on the other lower side. And you go in here and go into Settings, and this sh- is what it should look like.

  134. 17:56

    Do your settings look like this?

  135. 17:59

    Yeah.

  136. 17:59

    And then if you look for Approve... Sorry, can't type. Auto-approve.

  137. 18:08

    Do you see it? It might be Insiders.

  138. 18:14

    It's all a blur. We're shipping on a monthly basis, and I thought we tweeted about it end of last month, so.

  139. 18:24

    So you found it? Okay.

  140. 18:30

    I guess the future of... Sorry. What I was... To me, this is a little slightly scary because auto-approval, basically, like I'm just gonna run it-

  141. 18:38

    Yeah

  142. 18:38

    ... where... I, I'm not trying to compare products. I, I, I'm just used to, I really wanna use this and I wanna stop paying for GitHub. Um, but the challenge is that auto-approve is like, "I'm just gonna do this."

  143. 18:51

    Yeah, yeah, yeah.

  144. 18:52

    And this one's like, "Hey, would you like me to run this?" And then you say yes, and it does that work for you, right? So-

  145. 18:56

    Yeah

  146. 18:57

    ... I'm looking for that in between, but right now it's like quite binary.

  147. 19:01

    Yeah.

  148. 19:01

    It's gonna either run it or it's not.

  149. 19:02

    Yeah. The good thing, the person who owns the AI terminal integration just came back from paternity leave, so we're back on the game to work on it. [laughs] But the, um...

  150. 19:12

    There is definitely... W- we've been looking at how to allow specific terminal commands, and that's how most tools do it. But if you think about the scary parts of chaining and running multiple commands in one command, so terminals are not as predictive as you would think in how you can easily allow list things.

  151. 19:30

    So if you're mostly thinking about the how to do it right, right.

  152. 19:37

    Okay, now we've got two vibe coding sessions going on here. Hide this one. This is not, this is for tomorrow.

  153. 19:44

    This vibing is happening. So you see it, it creates an app.TSX, it creates an app.CSS. It also creates Copilot instructions. Uh, who's been using Copilot instructions before? Yeah, so that's, that's one way this out-of-the-box experience just does things for you.

  154. 20:01

    It, uh, comes with instructions baked in, which is nice. It understands which stack you're using that's mostly bounded. It already captured my design principles that I eloquently put in, "Please make it look like Apple."

  155. 20:14

    And now it's actually, there's a clean, minimal, intuitive interface, consistent UI, and everything else.

  156. 20:22

    Uh, it broke down the technical stack, even things I haven't mentioned like CSS and responsive design. So it calls out some of the assumptions that AI will fill in if you give it a high level task.

  157. 20:36

    Okay, this is still working on the index.CSS and the other one is working on the HTML file.

  158. 20:46

    Yeah.

  159. 20:46

    How do you get it to create the instructions file for that?

  160. 20:49

    It would just do it for you. It would usually do it as it creates the project. I haven't typed anything else so far, and we're just, we're just vibing. [laughs]

  161. 20:59

    There should be a file called instructions.

  162. 21:01

    It, um, here created one.

  163. 21:05

    Or a page.

  164. 21:06

    Let me see if it created one both.

  165. 21:08

    I didn't see that.

  166. 21:09

    Okay, there we go.

  167. 21:10

    Oh, each rep.

  168. 21:10

    Our first app is done. [laughs] Hydration Tracker. Stay healthy, stay hydrated. Today's progress, we're on a quick add, five hundred milliliters. And it went with metrics. Isn't that beautiful? [laughs]

  169. 21:25

    Just how I wanted it. Maybe it got my accent, I don't know. Um, we can do plus, minus.

  170. 21:31

    It's interesting how mine looks different.

  171. 21:33

    Yeah, I know. So does, does everybody looks as nice as mine?

  172. 21:38

    Do you already see yours? [laughs] Okay. [laughs] Yeah. Yours better? [laughs]

  173. 21:45

    Yeah. That's... This is like a very wide open vibe coding workshop. Um, I ran these a few times, and this is probably one of the nicer ones, so. Um, but it's also, I like actually running these with different models and getting a sense of how good each model is at design and having design sense without me telling

  174. 22:03

    it how to do everything. And Claude is definitely usually rocking the, the icons. It got the colors really nicely. So, uh, that's been great. This is a really nice app.

  175. 22:16

    So now next on, because we're visual, like we haven't even checked the code. We haven't read the CSS. We haven't looked at the TSX. Like is this still doing, which is doing functional programming.

  176. 22:24

    Like how does it handle state? I, I don't, I don't care. It works. So now you can actually do a new feature we landed. You can now say,

  177. 22:35

    "Work visually." So I can now say this header up here, I don't know what it's called, like whatever progress indicator. Um, let's make this,

  178. 22:46

    uh, more animated. Adding particles maybe. That's good. So mui-paper. So this is all... Is this material design? This is material design, yeah.

  179. 23:02

    So did you copy the component name?

  180. 23:04

    I didn't. I hit Start down here. Uh, if you have the browser preview open.

  181. 23:08

    Yeah.

  182. 23:09

    Did it open for you all? Cool. So this is, um, to point out two features. So one is in this flow, at some point, it basically started the task.

  183. 23:20

    It did NPM run dev. And then the next step it did, it opened Simple Browser. And Simple Browser is this VS Code in-browser preview we have.

  184. 23:32

    And it will just, um, what we're injecting here, what just went away, is a little toggle you can now use to select specific elements that we then attach as a visual referents, reference and as CSS into the current chat.

  185. 23:46

    So if I scroll back down here, I see what's being attached. I actually, I actually click it. So everything you see under Message is in the context. The element screenshot somehow didn't, didn't make it through.

  186. 23:59

    Uh, but this one made it in, and that's basically the, the CSS description and HTML of the element we attached. So I didn't have to describe the element where it sits, it just did it for me.

  187. 24:12

    Okay. Ran into snacks. We don't care about that. Let's check the other one. Ooh. [laughs]

  188. 24:19

    Number two, fluent design. Uh, this is what it came up with.

  189. 24:24

    It's a little bit plain. Um, this is sad.

  190. 24:30

    Okay. At least it has a goal reached, that's nice. Um, and it has recent entries too. It, it made similar assumptions on what we want. So feature-wise, it somehow got to the same conclusion, but design-wise, uh, this is definitely more corporate.

  191. 24:46

    Um, yeah. So that's the simplicity of vibe coding and using the new tool out of the box. Uh, if you are an Insider, so you can disable new tool, it's easier to do, like, a single file HTML thing, 'cause new tool is definitely biased towards using NPM and installing packages, so it always ends up a little bit

  192. 25:05

    more, um, complex.

  193. 25:09

    Do you work with, do you work with the Insiders too at all?

  194. 25:13

    Yes. Basically the team I work on. So I-

  195. 25:15

    Okay.

  196. 25:15

    Hi, I'm Harald, I work on VS Code. [laughs]

  197. 25:18

    Sorry.

  198. 25:19

    Yeah.

  199. 25:19

    It'd be really cool to understand when you open up a new Insiders, what are the new things that just changed different? Like, like a, like a quick diff somehow.

  200. 25:27

    Like, someone could show me, like-

  201. 25:28

    Yeah

  202. 25:28

    ... I have them both on my machine.

  203. 25:30

    Right.

  204. 25:30

    And I use them both, but then I, like, fall behind a couple days back. It's like, what are the new things and why it should be used in Insiders?

  205. 25:37

    What's-

  206. 25:37

    Yes. So the, the best way to stay on top of what's new is, so we, we do... Actually right now, this week, it's testing week and we're writing our release notes.

  207. 25:45

    So the release notes are usually capturing everything that's new. But for Insiders it's hard because it's coming out every day, so it's hard to s- point-

  208. 25:54

    So we should make an AI summarize it.

  209. 25:54

    That's a great idea. We're gonna make an MCP server that summarizes what landed.

  210. 25:58

    Just summarize it.

  211. 25:58

    Yeah. Yes, I like that. I like that. I like that.

  212. 26:00

    Yeah, yeah. Tell people what's new in the day, every day.

  213. 26:02

    Let's, let's do it for the next, [laughs] next demo.

  214. 26:04

    Yeah, the next vibe coding.

  215. 26:05

    Next demo. Okay. So what do we have in our Yolo vibing toolbox? We have the agent, um, which sometimes is hard to find. Now you're all on the agent, so that's great.

  216. 26:15

    It's all about, um... Actually didn't show that. But I could have shown that. It's different panel styles. So if I go back here, um, you can actually move this into the editor,

  217. 26:30

    which is nice. So some people like that, more space for your chat. Um, you can also...

  218. 26:38

    If I go back into my panel.

  219. 26:40

    What did you do to-

  220. 26:41

    Oh, uh, I moved int- in- into a dropdown here, and you can move your chats into here. So you can have multiple chats, and they actually have names, so it's easy to go back and forth.

  221. 26:50

    You can put them in parallel to your code, so you can use all the, like, window management things.

  222. 26:54

    Can you run them in separate windows?

  223. 26:55

    Yes. Wait. How did you know? Um. [laughs]

  224. 27:00

    I'm gonna test.

  225. 27:00

    Okay, where do we go? A new window.

  226. 27:02

    Monitor people.

  227. 27:03

    There you go. Now you have a chat in its own window. You can put it on your own monitor. So feature request accepted. And you can actually pin it on to be top.

  228. 27:13

    So now if I run this, and I can close this, uh... Oop. Let's move that away first. So I can accept this. This we are gonna keep. And I close it,

  229. 27:27

    and then close the other one. [laughs] And now we have the output, and we can just move our chat across and fully focus on the exponentials

  230. 27:37

    that are happening in this window. Yeah. So that's one way you, you can really manage

  231. 27:42

    the space how you want it. Uh, new workspace flow we showed, so it's really this optimized CLI first. You have a question?

  232. 27:52

    About the voice dictation part.

  233. 27:52

    Okay. Okay. Yeah. And then voice dictation I haven't shown. Uh, who has tried voice dictation in GitHub Copilot already? Okay, magic moment of,

  234. 28:02

    um... Add a dark mode, please. And maybe give it a cool name that works with a younger audience who needs to drink be- more... Or maybe my kids.

  235. 28:18

    Make it for kids. So a little more kids friendly. Thank you. Bye. [laughs]

  236. 28:27

    Okay. So, um, Command + I is actually the default shortcut. Um, it's, it's a local model, which is great for privacy, and it's really fast, uh, it's accurate. And there's an option as well if you, when you use command, uh, voice input, that it also reads back the text, which is great for accessibility.

  237. 28:47

    And yeah, by using just your voice, you can now finally don't put that coffee down and just keep, keep vibing. Uh, there's a Hey Copilot as well [laughs] I think we did at some point, which I haven't used in a while.

  238. 29:02

    Okay. Uh, I said all that. Keyboard shortcuts. There's a keyboard shortcut if you wanna customize it to actually hold down while you talk and then let go.

  239. 29:12

    Uh, visual context I showed, attaching, it's great for wireframes. The editor preview gets hot reload, it just works. And you can attach the elements using that little send button.

  240. 29:23

    And then auto-accept. I showed the auto-approve tool. There's also an auto... Or tool, a auto-approve tool setting. And there's also an auto-accept after delay. If you don't have that on, I love auto save.

  241. 29:35

    That's a great VS Code feature that's already working. Um, basically after delay or after focus change, it will just save it for you. And what I haven't showed, let's see if this, this works here, is the undo button.

  242. 29:49

    Is this still going? What is this one doing? I forgot. Um, oh, this is adding the particles. Cool. It still worked on that. Good for Copilot.

  243. 30:01

    Okay. Got stunning animations. That's great. That's what I wanted.

  244. 30:06

    Is it doing it now? So let's keep. [gasps]

  245. 30:11

    It does animate. Nice. Particle. [gasps] Nice. Look at, bubbles. Okay. Um, I don't like it.

  246. 30:20

    Oh.

  247. 30:20

    Undo, up here. Uh, those are basically our, our checkpoints. Uh, there's a new checkpoint UX coming, but... Because I have many people saying to me, "Oh, you don't have checkpoints, I can't undo stuff."

  248. 30:30

    But if you already accepted stuff, or if you wanna go back to something, like this is... I li- like these particles, but for, for v zero... Oh, this is beautiful.

  249. 30:39

    I love it. Uh, we don't need that, then you can also bring that back. Just need to see that again. That was really nice. [gasps]

  250. 30:47

    Okay, so [chuckles] for people who don't like particles, we can now undo, and it's now back to the original version. So it, it has stages for each of the,

  251. 30:57

    of the work it did, and you can easily go back and forth to see the before and after as well.

  252. 31:02

    Yeah. But in vibe code, you don't wanna look at the code because we don't look at the output. [laughs]

  253. 31:09

    Okay, um, that's the Yolo toolbox. And I think as I mentioned before, you wanna try it out just to get an idea of the AI. Like in my case, I mentioned I like getting a sense of how good AI is at design.

  254. 31:22

    Like, can I just give it wide tasks to explore a space, and it'll, like, come up with something interesting, or do you need to... How detailed do I n- do I need to be?

  255. 31:29

    When does it make mistakes? If I give it a general task, maybe about Java, where it's, uh, not as good at, like, what will it do? Um, next one is known frameworks.

  256. 31:39

    We went with Vite, Material Design, things that are kinda off the shelf and haven't changed in a long time, uh, f- in, in a large scale. So you wanna use something that's popular and have- has been consistent.

  257. 31:52

    And lastly, we use it as a whiteboard. Um, we show it as just attaching a visual element, change this, add some particles. Um, it's really about not being-- becoming too attached with whatever you're working on, but being, um, able and willing to throw it out and start from scratch if things go wrong.

  258. 32:13

    Structured vibe coding is this middle stage. Tries to balance the Yolo, the fun and chaos, with a more structured approach. And there it's, um, I think it's the biggest impact I see from talking to customers on, like, "This is, this is how vibe coding can work for us.

  259. 32:32

    This is where we can bring somebody te- non-technical in, give them a good starter template that has a consistent tech stack, that comes with clear instructions for the LLM and how to work on it and keeps it in its actual guardrails, and already brings in some custom tools that bring in expert domain knowledge or internal knowledge that

  260. 32:54

    you would need to work on this code base."

  261. 32:57

    And that's really kinda Yolo on, on guardrails. Uh, it's faster and gives you more consistent results, so you don't end up with something, "Oh, it used Material Design, but it should have used Fluent," or, "It used-- should have added dark mode and should have been responsive."

  262. 33:11

    All of that can already be baked into the instructions.

  263. 33:16

    So I see a lot of companies bring that into their bootstrapping for greenfield projects. So we have something, and you can-- oftentimes it's, uh, you go into a meeting, and you have a product that looks already finished because you vibe coded it with your go-to stack.

  264. 33:29

    It uses your internal design system, so it already looks way more polished.

  265. 33:35

    And the last piece, I think, out of mainstream workloads is where Yolo, by default, will always bias towards whatever is, like, top of the training stack. With this one, you can then customize it further down to internal stacks, internal workloads, internal deployment infrastructure that makes it work better.

  266. 33:56

    So let's do structured vibe coding. This is now-- The image, as I, I explained, it now has wireframes and, uh, more charts, so that's what makes it more structured.

  267. 34:09

    There we go. It's open. So what I'm gonna do now, I think I'm gonna push this...

  268. 34:17

    Oh, is this still running? Let's see if this runs. I did create this vibe coding, so I do have another one that I can share. Just look at this one, and I'm gonna push it

  269. 34:34

    to GitHub. This goes through. It can be fine. Um, cool. Front end vibes. Perfect. Um,

  270. 34:45

    this is all vibes, so we're gonna make this live. Um, this is commit.

  271. 34:51

    And then-

  272. 34:52

    Commit

  273. 34:52

    ... uh, yeah. Oh, yeah, mi- missed this one. Who has been using this commit button here?

  274. 34:59

    So Copilot will write your commit message. Done. This looks good. And now sync changes, and I'll share the repository.

  275. 35:13

    This repository might still be an old name. Let me see.

  276. 35:20

    Do you think time for us to pull this from files directly?

  277. 35:22

    Yeah, probably. Uh, let me just check where it sits [laughs] 'cause I forgot where it sits.

  278. 35:32

    Oh, this is perfect. Sleep vibes. So that's one of my vibe exercises. Okay, this-

  279. 35:38

    What's the command for browser window in VS Code?

  280. 35:42

    For browser window?

  281. 35:44

    Like, uh, viewing your...

  282. 35:49

    Which-

  283. 35:50

    It-

  284. 35:50

    The-

  285. 35:51

    It just opens sometimes, but I don't remember.

  286. 35:53

    Oh, yes. Yes. Um-

  287. 35:55

    Simple browser

  288. 35:55

    ... yes, the simple browser. Sim-- So if you go into

  289. 35:59

    simple browser show. That's it. Okay, the repo we're pulling down is... Oop. Whoa. [laughs]

  290. 36:09

    This one. Sleep vibes. Doesn't have a dev container, but it's only node, node GS, though, so it shouldn't be too gnarly.

  291. 36:30

    Do we want to get the agent to do some special magic to pull this, or should we just- [laughs]

  292. 36:38

    Should I try it? Uh, [laughs] it's a, it's a Git clone.

  293. 36:44

    You can ask the agent to Git clone it for you. Yes. [laughs]

  294. 36:50

    More than that.

  295. 36:53

    The user Oh, sorry. [REDACTED:username], that's me. [laughs] Yes.

  296. 37:11

    Okay, and then NPM install on it, and then,

  297. 37:18

    yeah. If it would've prepared better, it would've been a codespace and a dev container, and you just click open in codespaces and things work. Um, come to my next show and then we'll get that fixed.

  298. 37:33

    You got it.

  299. 37:34

    Yeah. [laughs] Let me actually just open the codespace to see. [laughs]

  300. 37:40

    Now I'm curious if it just works. Anybody's been using codespaces on GitHub?

  301. 37:49

    Not many, okay. Occasionally.

  302. 37:54

    The complexity lies in all the different versions of each paradigm between Insiders, the regular version, all of the plugins, and some of them don't work in-

  303. 38:02

    Oh, no bug, yeah, yeah

  304. 38:03

    ... in-

  305. 38:05

    Yeah.

  306. 38:05

    But if everything just worked the same, it would be amazing.

  307. 38:07

    Yes. It mostly does, right? But mostly, right?

  308. 38:10

    Yeah. It-

  309. 38:10

    Yeah

  310. 38:10

    ... it's ninety-

  311. 38:11

    Yeah

  312. 38:11

    ... five percent there.

  313. 38:12

    Yeah.

  314. 38:12

    But it's the five percent where when something doesn't work, you just go back to the other tool.

  315. 38:16

    Yeah.

  316. 38:19

    So VS Code, the ability to clone, is offering me to reopen it in a container. It's a .devcontainer configuration.

  317. 38:25

    You can try. I haven't-- I'm actually not running it in a container, but if you wanna...

  318. 38:30

    That's all right.

  319. 38:30

    The container is just a Node.js one, and it should work too. I did add a container, see?

  320. 38:37

    Yeah, it's still going.

  321. 38:38

    I vibe coded my container too. [laughs] Wait, I c- I can now check. So if you ever wonder what, what you did on a project, um, so this is where I created my container.

  322. 38:50

    This is where I just asked, uh, GitHub Copilot to update my dev container. Just look at my code base and update my dev container, so it did a, a good job here.

  323. 39:00

    Should have maybe remembered that I did that as well.

  324. 39:09

    Okay. If, if you're ready, uh, w- meanwhile, while you clone, while you NPM install, anybody got it working already?

  325. 39:16

    Still cloning? Okay, cool. I'll give the tour of what we have. So one is we again start with good Copilot instructions, and they live in .github/copilot-instructions.md. It's a s- markdown file that's included with all your agent requests, all your chat requests, all your inline chat requests.

  326. 39:39

    Just Copilot basically gives, like, grounding foundation knowledge about your code base. And sometimes they feel a bit repetitive, like, um,

  327. 39:51

    depending on... I, I saw some demos of, like, use basically repeats linting rules that you expect the AI to just follow anyways. But I, I like, um, my go-to is just a one-liner on what, what, what's your stack.

  328. 40:04

    That's, that's a good starting point. Just point it to what frameworks, what version, and that's one way to just keep it on rails with what, what it uses. Question.

  329. 40:17

    I was experimenting with this and figuring out what would be the best way to have that be a standard that gets included in, but, like, let people not, not mess with that.

  330. 40:28

    Like, give people some coding structure.

  331. 40:30

    Yeah.

  332. 40:31

    If you have a whole team of vibe coders, like, you probably don't want them touching that.

  333. 40:36

    So this is in your repo, so I think it's a good team exercise to iterate on it. Like, this shouldn't be a stale document.

  334. 40:44

    Yeah.

  335. 40:44

    You can put this in your user settings as well. But-

  336. 40:47

    You probably don't want it with each app. You probably want it as a different repo, right? Like a-

  337. 40:51

    You could do that, yeah

  338. 40:52

    ... like a set of a way that you code and then each app codes.

  339. 40:55

    I've been thinking about that too. Yes. I've been really thinking about that. So I've been trying to convince on, uh, my peers on a GitHub site this should be an organizational setting that people can set easier on, like, a organizational level and, like, something as a, as a team you can select which ones you wanna use.

  340. 41:12

    So working on that dis- discovery sharing.

  341. 41:15

    Is there always one file or can you opt in for like... 'Cause, like, you have different languages, different-

  342. 41:18

    Yes

  343. 41:18

    ... settings, different things you're building, like a-

  344. 41:20

    Good question

  345. 41:21

    ... certain APIs and...

  346. 41:22

    Yeah. So we have this one now. These, these are new instructions. So they-- These, these are-- These become rather monolith and large and unwieldy. And now, uh, just to point out here before I go to new ones, I do also guide which tools to use.

  347. 41:39

    I do have my first MCPs in here and I already tell it for frontend Q&A review, use the browser tools that come from Playwright. Research, I use Perplexity. I have, uh, Context 7 in here which has library docs and it keeps using this ID tool to look up IDs, but I just gave it these are the IDs

  348. 41:57

    you should use. Don't, don't use the other tool. So there's ways you can already guide it to specific tools you want it to apply when needed.

  349. 42:07

    Um, the rest is just syntax formatting, optimizations, um,

  350. 42:11

    key conventions. Yeah. And then the other format we have is .github/instructions/name.instructions.md, and those have this front matter syntax that's becoming more popular for rules of what, what files it should apply to.

  351. 42:29

    So they start to be scoped with a glob pattern, and then right now they're limited to being applied. You actually have to have the file in context, so a TypeScript file would only be applied if I actually do have a TypeScript file in here, or I do have one open and then I e-enable this context, then, then

  352. 42:48

    it would be applied. But if I only have this right now, which means this isn't included, it wouldn't actually apply the rule. We're, we're fixing that and it's gonna be more

  353. 42:59

    Working as expected, probably. Um, but that's, that's right now... That's, like, the biggest question I get. Like, it didn't include my rule because right now it really wants to see that file.

  354. 43:11

    Um, yeah, so those, those are new. Uh, those shipped, I think, in the last version, so they should be also in Stable, and we're actively working on those. So...

  355. 43:20

    And then the, the new, new thing is plans, uh, or prompts. And then we have the first kinda reusable tasks for, as a team, how do you think about ingraining like, oh, we now have finally a way to tell GitHub Copilot to write tests.

  356. 43:36

    And your AI champion on the team handcrafts this, this perfect prompt which one-shots your test consistently. And now everybody's shared it in Slack, copies it around. Once you run a write test, you go back to Slack, copy it back, and that's what you wanna use prompts for.

  357. 43:53

    You can finally put these prompts into a place where they can just be used by everybody. And how can they be used? So I showed these can actually be, be attached, so you can also go in here

  358. 44:05

    and attach instructions. So you can, you can do it manually too, so that's one way. But I can also now go in here, um, in the chat window, and hit slash, and I can now actually run user prompts that are my own, that I create for myself, and I can u- use my plan and spec prompt you

  359. 44:24

    see over here on the left.

  360. 44:26

    Can you make up a custom one?

  361. 44:27

    Yes. These are custom ones. So the ones I have here, these are already custom in the workspace.

  362. 44:34

    And then the other ones I don't have, I'm not showing, so...

  363. 44:39

    I think we do. Wait, there's a new menu.

  364. 44:42

    You can come up with a ridiculous name like dance or something.

  365. 44:43

    Yes. Yeah, yeah. You can name them free. So let's make it here. Um,

  366. 44:48

    so these, this one actually just landed yesterday. Because insiders [laughs], we can now finally have an entry point. Because everybody kept asking, "How do I create prompts?" And then I have to tell them which command to find it in.

  367. 44:58

    So this is the new prompt co- co- configuration file, and I have some already here. So as you mentioned, like, this is one that's interesting for, um... If I open this one, this is like defining how I wanna write custom instructions.

  368. 45:11

    So whenever I'm in a new project that doesn't have custom instructions yet, I do run this prompt to, to bootstrap them for me.

  369. 45:20

    And yes, there should be a prompt sharing website where you can find these amazing prompts that I create, and next week we're gonna [laughs] ...

  370. 45:30

    E- each, so each prompt is like a separate... It's like separate from each other?

  371. 45:35

    Yes.

  372. 45:35

    Okay.

  373. 45:35

    So that's the main difference between instructions. Instructions are, you can have multiple. If you work on, for example, if you have one for TypeScript and one for your front-end folder, they do combine because there's multiple instructions that hopefully don't conflict with each other.

  374. 45:52

    Um, but they, they allow you to be attaching multiple instructions, and they're really more about code. Whereas prompts are basically, uh, easy ways to inject something in this prompt field, and they stay in the conversation.

  375. 46:06

    But they, um, they're mostly around a task and maybe giving the AI something, like, specific to do. Instructions you wouldn't necessarily give it, like, what to do, but more how to do it.

  376. 46:20

    What about if you wanted to, for example, teach it to, um, always do TDD when it's writing code? That... Where would you put that?

  377. 46:30

    Yeah, yeah. So TDD, um, good point. Uh, that would be a good way to use custom modes. So if we go into here, custom, uh, mo- sorry. So this is only insiders 'cause it just landed, so you can't follow along or if you're not insiders.

  378. 46:48

    So custom modes will show up, um, in the dropdown. So this is like gonna... It, now, it just c- went into the menu, created a custom mode, and now I can pick where it shows up.

  379. 46:59

    So it got github/chat modes which put it into the repository, or I just wanna keep it for myself. So a good pattern if you just wanna experiment, put it in your user folder.

  380. 47:11

    If you wanna make everybody's life better in your team and you have high confidence that your mode does that, then you put it into the project.

  381. 47:19

    And then, uh, we're gonna do name this one TDD.

  382. 47:25

    And then we're gonna ask AI to fill it in, right? Uh, prompt,

  383. 47:34

    um, expert, expert prompt. Uh, for [laughs] ... Wait, ah, it's just typing.

  384. 47:41

    Wait. Hi there, AI. We need a prompt that enforces test-driven development, uh, for GitHub Copilot. So it should probably first make sure it understands the problem, then write tests first, and only after tests are done maybe get confirmation from the user to then write the implementation, and then keep running the tests against implementation.

  385. 48:03

    Cool. Thanks. It's important. And it didn't know, it didn't necessarily actually... I'm now worried because I didn't actually activate my files context. Let's see if it... [clicks tongue]

  386. 48:23

    I figure it should have a tool to just create modes for you if you ask it, so it's gonna, gonna make that an MCP server next.

  387. 48:31

    Okay. Oh, it got it. Okay. Oh, wonderful. So we have a test-driven development assistance. Uh, it's, this is my code. We don't wanna read the code. Test development, assistant, core principles, understand,

  388. 48:42

    RED. Write failing tests first. Beautiful. I would have not... Green. Wow, it does follow. Refactor, improve code quality, strict rules, no implementation without tests. Beautiful. Beautiful. So this our new TDD mode.

  389. 48:57

    Um-

  390. 48:59

    We're starting at four.

  391. 49:00

    We're starting at four. Looks pretty good. It has emojis, example. Should we try it out? [laughs]

  392. 49:09

    Okay, we have-

  393. 49:10

    Framework for now. Did it say, didn't it say there was a framework in that?

  394. 49:14

    Um-

  395. 49:15

    If you scroll back up, there was something that said... I thought it said framework.

  396. 49:21

    Use a framework. It's framework independent, it looks like.

  397. 49:23

    Is it? I thought there was something...

  398. 49:26

    Oh, just... Yeah, I think it does some.

  399. 49:27

    Oh, there it is.

  400. 49:28

    Yeah.

  401. 49:28

    Oh, okay. So it has it right there.

  402. 49:29

    It does make some stuff up. Yeah, wouldn't need to do that. I can take this out. I already have my... So,

  403. 49:39

    um, cool. Test drive the design. Wonderful. Okay, let's do it. So we have this project, which doesn't do anything. If we just run this, um,

  404. 49:50

    npm run dev, probably doesn't... I think I already did this before. So this is just a basic plain landing page. So let's do the, um... What feature do we have?

  405. 50:02

    I want a dashboard for GitHub issues. Just use mock data because I don't wanna wire it up to GitHub. So wanna have maybe some interesting contribution metrics and... But first, actually, let's make a plan.

  406. 50:16

    Meanwhile, while I type this in, let's p- stop it. Um, TDD.

  407. 50:24

    So a dashboard for GitHub. Um, don't worry about...

  408. 50:30

    So now, again, we give it a very broad task, but we can now put it into TDD mode,

  409. 50:37

    which is our new amazing test-driven development mode that follows all the best practices. I assume that the AI knows about TDD.

  410. 50:45

    And let's see.

  411. 50:49

    So you... Wait, that's like you created a new mode there.

  412. 50:52

    Yeah, because we... So we went, previously went into configure chat modes. We created a new mode. This mode is now enforcing the technique. We can actually, in a mode, you can say which tools it's supposed to use.

  413. 51:04

    So-

  414. 51:05

    Is, is the mode that, that's got me confused. Is the mode in agent mode, but based on-

  415. 51:11

    Yeah

  416. 51:11

    ... the other markdown file? So it's a-

  417. 51:12

    Yes

  418. 51:12

    ... it's a custom agent mode.

  419. 51:14

    Yes. Yeah.

  420. 51:15

    When is that gonna be live?

  421. 51:17

    Uh, it's in Insiders now. It's, so it's gonna ship next week on, on the 11th.

  422. 51:22

    Yeah.

  423. 51:22

    How often does Insider ship?

  424. 51:26

    Insiders ships daily, but it only releases monthly. Yeah. And we're one, one week late, uh, because there was a short, short week, so we adjusted our schedule.

  425. 51:38

    Does that mean coming back to just loading?

  426. 51:41

    Yes. Um, so for most of you, this menu will just have these entries. And the-- In Insiders only,

  427. 51:51

    if you look for modes in the command palette. So command palette, you can also click up here, show run commands, and then modes, and that's, that's the place.

  428. 52:06

    During development, if I ask you to deploy the application-

  429. 52:13

    Yeah

  430. 52:14

    ... there's errors in the console. There, there's gotta be a way for instead of me copying and pasting that error into-

  431. 52:24

    Yeah. Are they in, in the output or in the problems view?

  432. 52:28

    It's in the output. It's in the console, right? So just think about it-

  433. 52:31

    Okay. Yeah, yeah

  434. 52:32

    ... like this. I, I purposely did something wrong, and I wanted to see, like, the error code is in chat in the, in the terminal.

  435. 52:41

    Yeah.

  436. 52:41

    In order for... And it goes, "Tell me if you need anything else."

  437. 52:44

    Yeah.

  438. 52:45

    Um, I want you to look at my pro- I want you to look at my terminal when there's an error, right? And right now it's only copy and paste.

  439. 52:52

    Yeah.

  440. 52:52

    Is there a mode where it just constantly is looking at the terminal?

  441. 52:56

    It-- If it runs the commands itself, it will start looking at the terminal. So the easiest way if you, if you run the deployment and the scripts itself through Copilot itself.

  442. 53:08

    But otherwise, there's also context, actually. If you look here, we have, um,

  443. 53:14

    the-

  444. 53:17

    Yeah, try terminal. Let's see.

  445. 53:18

    There is actually terminal last. There's terminal last command, which includes the output as well, and terminal selection. Now, if you ask me why they're not in the add context, I, I couldn't tell you right now.

  446. 53:30

    Yeah. But that's working. I think I did this thing wrong, though. TDD. Let's just see.

  447. 53:43

    Oh, the tools. It configured... It made up tools. So it did... That's, that's a part it made up. That's actually, those are not the right tools.

  448. 53:52

    Um, this is why it didn't do anything, was when I-- It just basically acted like chat and gave me the code, 'cause all the tools it tried were,

  449. 54:01

    uh, it didn't have any right access. So let's try this again.

  450. 54:09

    So this is probably a good, good, good point to, good thing to point out. So in now prompts as well. Let me open plan prompt. So this one can actually now set tools.

  451. 54:20

    And if you just make a tools entry here to tools, [chuckles]

  452. 54:25

    you can now actually click here and say which tools. In this case, this is a planning to prompts. So mostly you probably wanted to look at Perplexity to come up with anything it needs to find on the internet.

  453. 54:37

    Uh, I can select that. So that's the way you can now have tools constrained for a specific prompt,

  454. 54:47

    which, which always helps with high, kinda higher quality. Because if you have many tools, which as you install more MCP servers, you always have this tooling explosion, and they might solve all different problems you're having throughout the day, but now you can configure it more specifically for domain.

  455. 55:01

    And also Insiders only, we have tool Groups, uh, tool sets, I should call them. So tool sets I can... H-how do I get here?

  456. 55:16

    Um, down here in the tool dropdown, configure tool sets and add more tools. This, I think, sends you to add server. But configure tool sets, open this,

  457. 55:27

    opens this one here, and that's only for- MCP servers, right? Anything. Both built-in and MCP. Actually, a lot of the tools you see here, we cleaned this list up.

  458. 55:39

    If you use Insiders, you see them. [laughs] Then these are actually tool sets already. So we use tool sets internally because edit files has multiple ways to edit files. We give the AI a few ways.

  459. 55:49

    Uh, code base search has Grep, has file search, has different searches as well depending on what you're looking for. So all of these actually are tool sets in our own backend, and we expose this now as something you can create yourself.

  460. 56:03

    So my research tool, for example, has the Perplexity tool to ask deep research questions, and it also has Fetch.

  461. 56:16

    Before you talk about other open MCP SSE servers.

  462. 56:21

    No, I didn't. No. We can show... Can you talk about that today? Yes, I can. Wouldn't be a talk without MCP. It's just... [laughs]

  463. 56:31

    Also, there's a talk tomorrow about MCP, a whole talk track where I'll be talking about MCP, if I can finish my slides.

  464. 56:39

    Um, okay, there we go. So let's talk about MCP. This is doing

  465. 56:45

    something. Let's see. Not understanding requirement. It created mock data. Red phase, writing tests. It wrote tests. It... Oh, it found it. There's a no package library. That's, that's sad.

  466. 56:58

    Um, and it created the test utility, and then it tried to run the tests.

  467. 57:07

    Um, and then it asked to proceed. So that's cool. So it did the first stage of that mode, um, but I don't need to go too deep. But that's modes, TDD.

  468. 57:16

    It will ask now for con- 'cause we ask it to ask actually for confirmation, so that's why it's now pausing. It wrote tests. Uh, they're all red, so that's good.

  469. 57:27

    Okay, we accepted, and let's go into MCP. So MCP servers-- Who has already MCP servers set up in their VS Code?

  470. 57:37

    Good. [laughs] Two. Okay, um, one way to get MCP servers is editing JSON, and that's really, um... There's a few other ways, but let me show you another way. Um, Playwright MCP.

  471. 57:50

    Who's been using Playwright MCP? It's probably one of the coolest ones. Um,

  472. 57:56

    so Playwright MCP is a browser testing framework, and it allows people to access the browser locally and just take screenshots, run websites, get accessibility audits, a whole bunch of utility in there.

  473. 58:08

    And how to get it for VS Code, there's a JSON blob that you can all ignore and just hit Install Server.

  474. 58:17

    So Install Server is a, just a VS Code protocol that we use to just wire things up into VS Code. You see the same if you go to the extensions marketplace for VS Code.

  475. 58:27

    You can hit Install Extension. That powers the same process. So now I can ins- um, don't hit Show Configuration. We need to move this down. But Install Server actually puts this now into my user settings.

  476. 58:40

    And as you can see, you can have MCP servers both for yourself, and I have the one for GitHub and for GistPad, which is a cool one. I can recommend this one.

  477. 58:51

    And then, yeah, Playwright now. So you can already see how many, um, tools it provided. You can see if anything fails. You can get to the output.

  478. 59:03

    If there would be configuration, I can show that here. There's actually GistPad needs a GitHub token, so it's a local MCP. And what-- Have you ever seen that one?

  479. 59:15

    So, yay, no tokens in my configuration. So you can use inputs in VS Code configuration, both in the mcp.json and your settings. And inputs, you might have already seen those in tasks.json.

  480. 59:28

    It's how you configure your tests and your build steps in VS Code. It's the same system. Um, they're defined up here. So inputs are just an ID, a type, description, a default value, and the password true means it's encrypted at rest after you put it in.

  481. 59:47

    So it doesn't ask me more. That's gonna prompt you then?

  482. 59:50

    It would if it... But this, this shows basically that it already has a token. Okay. But if you enter it the first time, and we can actually try that.

  483. 59:58

    If I- Where does it actually keep it? Uh, in VS Code's key storage. So if I... On Mac, it actually uses Keychain. Oh, okay. Yeah. So...

  484. 1:00:09

    What other MCP servers do you use? Do you have any- Yeah, so I can show, um, GistPad is fun. It's done by actually, um, somebody at GitHub, so gistpad.dev, gistpad MCP.

  485. 1:00:20

    That's mostly-- I'm gonna show it off tomorrow as well in my talk. Um, but it's a fun one that uses, uh, Gists as a knowledge base and also for prompts.

  486. 1:00:31

    So I really like this one. Uh, it adopts a ton of, like, recent M-MCP stuff. But I think the main ones we usually see is GitHub MCP server.

  487. 1:00:41

    GistPad. GistPad. From? Lost in Tangent. Okay, yeah. Yeah. So this, uh, if you just wanna play around with a, with a really well-done MCP server, then that's, that's one.

  488. 1:00:53

    Um, not saying the GitHub one isn't as good, but it's, um...

  489. 1:01:00

    There's a lot more coming here as well. So they're all in, like, really active development to figure out what the best way for MCP is. Yeah. And so, um, just a couple steps you went through that also

  490. 1:01:12

    Yeah. So if we're using SSE, like let's say Python-

  491. 1:01:15

    Yeah

  492. 1:01:15

    ... so, so how many-- of course, where did the-- oh my God. You had the MCP JSON.

  493. 1:01:20

    Yeah.

  494. 1:01:22

    Okay. Where-- how did you connect to the... Let's say I have a Python, custom Python MCP server on SSE port one two three four.

  495. 1:01:29

    Yeah.

  496. 1:01:29

    Which is exactly what I put. I don't understand how you just did that.

  497. 1:01:33

    Okay.

  498. 1:01:35

    How do I hook it up?

  499. 1:01:35

    To SSE?

  500. 1:01:36

    Yeah.

  501. 1:01:37

    Yeah. Okay.

  502. 1:01:38

    Right now this is new for us.

  503. 1:01:39

    Okay. And, and-

  504. 1:01:40

    An example

  505. 1:01:40

    Right. And in your case, that server's already running. So how, how to hook up-

  506. 1:01:44

    I have one already.

  507. 1:01:45

    Okay, cool.

  508. 1:01:46

    Let's do this.

  509. 1:01:46

    Yeah, let's do that. So SSE, um, same way basically. So what-- Just finding my... Oh, uh, max, max it out. So go back to my MCP.json. And down here-

  510. 1:02:01

    Talk about MCP. So one thing is it per workspace?

  511. 1:02:02

    Yes. So just kind of clarification. MCP.json sits in .vscode right now, and it's per workspace, and that's shared across everybody. So hopefully it puts up... Either you work on it alone, and it's just for you, or everybody is happy to have those MCP servers.

  512. 1:02:17

    Okay, that's awesome.

  513. 1:02:18

    Yeah.

  514. 1:02:21

    That knowledgeable

  515. 1:02:22

    Yeah.

  516. 1:02:22

    That's per workspace. And now maybe, maybe the SSE, the VSSE part.

  517. 1:02:26

    Yeah. Yeah. Okay, and then the-- what's now, if you hit @server, you will find what you're looking for.

  518. 1:02:34

    And then from @server, you can hit down on HTTP. So we actually do support both SSE, which is actually deprecated, and streamable HTTP, which is, uh, the, the new fangled, easier to scale, better for your cloud.

  519. 1:02:49

    SSE is deprecated?

  520. 1:02:51

    It, it's no longer in the spec, yes, and we do fall back to it on a client side. But it's, it's the SSE is really hard on, on hosting, right?

  521. 1:03:01

    Because they have these long-running connections.

  522. 1:03:03

    Long poll.

  523. 1:03:04

    Long, long poll. Yeah.

  524. 1:03:08

    Yeah, yeah.

  525. 1:03:08

    Yeah. So... Yeah. So that's, that's where you put in your, yeah, MCP SSE server. And if you wanna do it manually, it's really just, um,

  526. 1:03:16

    you get a nice autocomplete too. So if you, if pick a name.

  527. 1:03:26

    Example, and, um, this would be the type would be

  528. 1:03:33

    not studio. Actually, it's HTTP. Yeah, you already would, would use HTTP. And it would already yell at you that you don't have a URL, so I'm gonna put a URL.

  529. 1:03:43

    So this, this is how, uh, everything is by default as stdio. Once you have a URL, I think I can take this out. Yeah, so it would, would be just that entry.

  530. 1:03:51

    So in order to leverage this, are you just starting your chat in ask? Is it agent chat, and then it's leveraging the MCP

  531. 1:04:01

    server?

  532. 1:04:03

    Yes. So to get... Yes. Um, you see many pe-- demos I see people hit start here as well just to see that it's working. It's a nice configuration to just make sure it's working.

  533. 1:04:14

    We actually do cache the tools once we saw them the first time. So how MCP works is that on the first init-initialization from the client to the server, it shares its tools back, and that's what you see here, the one tool.

  534. 1:04:29

    So if you would do it right, you would never know the tools unless you start the server. We actually cache them, so you don't have to-- we don't have to start all the servers proactively once you open the Copilot just to get the tools.

  535. 1:04:41

    Okay, I just make sure. So that plus symbol on top of chat, we would be just... It, it, it would-- it now recognizes the server.

  536. 1:04:49

    Yes. Yeah.

  537. 1:04:50

    You need to get out of agent mode, right? You go into the-

  538. 1:04:53

    No, actually, you wanna be in agent mode. Agent mode, uh, ask mode will not run MCPs for you. Uh, you can, you can go,

  539. 1:05:01

    uh, because ask mode is not, uh, it's not actually-- There's, there's no function calling inherently, right? The func-- ask mode is really this traditional ask ChatGPT question, uh, will answer based on its training data or its context.

  540. 1:05:12

    Um...

  541. 1:05:13

    Variable training data.

  542. 1:05:15

    Yes. So there is also an ask mode, you don't have tools. You would see it. Um, but I can do actually... Does this still work?

  543. 1:05:23

    Um, let's do that more quickly. I think we actually do this still.

  544. 1:05:34

    Yes. So we're actually blurring the line a bit now. So if you do... That's not working. Okay.

  545. 1:05:41

    Yeah, but the-- If you actually reference specific tools in ask mode, it will invoke them for you. But by default, the, the way where you wanna execute tools is in agent mode.

  546. 1:05:53

    Oh, I am-- These, these, uh, models as well, you're using, um, Claude 4-

  547. 1:05:58

    Yeah

  548. 1:05:58

    ... Claude model. Um, I'm interested in finding configuration as to, like, how does it know that that Claude model or the GPT model, what subscription are they?

  549. 1:06:13

    Uh, they're all coming through GitHub Copilot. So they're all using your paid, uh... You can add your own models. Anybody has tried it? Managing a model? So, um, so I have Gemma 3 through Ollama, which runs locally, and I have Open Routers Perplexity R1, uh, which is actually a fine-tuned model from-- of DeepSeek R1 from Perplexity.

  550. 1:06:36

    So if you haven't tried it yet, uh, basically go into the model picker and hit Manage models, and then we, we can actually custom configure your own API keys from Anthropic, Azure, Cerebras, Gemini, Groq.

  551. 1:06:47

    All of these, um, Ollama is the local one. So if you have a beefy M4 Pro, I'm still sad how many models I can actually run on this, [chuckles] but, but eventually, it's gonna be small, powerful models, um, that make sense.

  552. 1:07:00

    So-

  553. 1:07:01

    Is there a reason that when I do that, I don't see Claude 4 Opus and Trevithick, and it only shows, like, three, five things that I don't know what it is?

  554. 1:07:08

    Uh, it might because of your Anthropic tier, right? That's-

  555. 1:07:14

    Um, or is it-

  556. 1:07:16

    I have Sonnet 4.

  557. 1:07:17

    You have Sonnet 4? Oh, oh, uh, the other one... Yeah, you might be in agent mode. So we do actually have filtering down. So that's an on-ongoing improvement we're doing, that's why it's not-- It's right now a preview feature only, because we're still having to connectly-- correctly wire up which model allows tool calling.

  558. 1:07:33

    So there's some, some... Every provider has different indicators of how tool calling works, and that's, that's one of the matching things we're doing right now. So you might not see it because it's not on our, our list yet.

  559. 1:07:45

    Um, is it, uh, the veracity of when you go into profiling, let's say you have four tools. Is, is it verbose enough to say, like, what tool is it calling within MCP?

  560. 1:07:55

    Yes. Yeah. You, you, you, you will see that. So if I do just, um... We'll want an example here.

  561. 1:08:02

    Uh, so just pa- So, so A, you can disable them. If you already-- If you wanna be faster, you can do Command down and just go through. So Context seven is the one I wanna keep.

  562. 1:08:12

    Playwright I can disable right now. But once you start using them-

  563. 1:08:16

    Well, how, how did you disable them?

  564. 1:08:17

    This is Command up and down, the power user way of navigating

  565. 1:08:23

    those. So these are all built-in MCP servers, and once you start, you can actually now-- If I wanna be very explicit and I know which tools I want, I can use my tool sets, or I can mention the specific tools that are, um, in, in my list.

  566. 1:08:38

    But I can also now just go in and say, what do we wanna do here? Um,

  567. 1:08:43

    research, uh, GitHub metrics. Let's actually use the research one 'cause we created

  568. 1:08:55

    it. Sounds better when I use research here. Use it in a sentence [laughs]

  569. 1:09:00

    for productivity. And what's happens now is, uh, this one has now, is in agent mode. We have the research group set or tool set, so we'll either use Perplexity or Fetch.

  570. 1:09:15

    And I wonder if my Perplexity key is actually outdated 'cause it failed before. Let's see. Okay. So you see, I already actually approved this before. So you see, A, that it runs the server, and you actually click the server to see where it comes from.

  571. 1:09:30

    Um, if it would have not auto, auto-approved this, because auto-approve is still on from our previous session [laughs] you can actually go in here and edit what it's sending.

  572. 1:09:41

    Um, which now doesn't make sense 'cause it's, it's already sent.

  573. 1:09:44

    And then it writes up, uh, what it found in this case.

  574. 1:09:48

    Does that underscore ask have anything to do with which mode it's in?

  575. 1:09:51

    Uh, no, that's just the odd name for the Perplexity tool.

  576. 1:09:55

    Okay. It happens to coincide with-

  577. 1:09:57

    Yes. Yeah, yeah. It's just, um, the verb should be before it, so it's their, their naming. Yeah.

  578. 1:10:06

    Yeah. So that's now run two. It actually did a follow-up query as well and explained it. And now I could put this in, into a spec as well. It's actually-- I did this before, so I wrote a spec using-- for a community dashboard.

  579. 1:10:21

    So I did the research using Perplexity, and then asked it to write a spec from it using a little query I have here for the spec. Um,

  580. 1:10:31

    so that's one way you can quickly get things done.

  581. 1:10:35

    And just to point out this one, it's, uh, pointing it to a spec. So these are actually resolved by the AI. So if you point it to specific files, we do, do actually validate those as well.

  582. 1:10:45

    So if you get them wrong, I think they're on the lane. Um, you can also click them, so you get all the markdown

  583. 1:10:52

    goodies. Um, and then you just ask it to write on the spec, do nothing else. Uh, use Perplexity to look up stuff.

  584. 1:11:01

    Don't lose details. Keep updating the spec. So that, that's one way to work on specs. There's probably more, more tools we'll-- we're gonna add here. Yeah. So that's MCP.

  585. 1:11:11

    Any other MCP questions? Thank you.

  586. 1:11:14

    Is there a way you can specify which model to use or...

  587. 1:11:19

    Uh, per MCP. So the MCP itself doesn't run anything, except when you support sampling,

  588. 1:11:26

    which we do on Insiders. Sneak preview for tomorrow [laughs]. So, but yeah, but if you use sampling, actually... I guess I have to explain sampling. So sampling is a way for MCP to reach back out from the server to the client to use the LLM on the client.

  589. 1:11:44

    And it's-- You can often think the best use case, case are to summarize. Use cases are if you wanna, um, reduce the amount of tokens you send to the-- back to the client to explain something.

  590. 1:11:57

    So there's a few ways, but, um, overall, there's not enough integration of sampling. Um, but so we're the first ones to, to get it out there because we already have the LLM exposed, so that's cool.

  591. 1:12:14

    So one more thing. So like it is more like some of these tools just run better certain LLM. Is there a way-- Is there a, a non-deterministic way-

  592. 1:12:25

    Yeah. To pick the model, kind of?

  593. 1:12:27

    No.

  594. 1:12:27

    What-

  595. 1:12:27

    To pick the darn tool. So you, you, you clearly have multiple tools here.

  596. 1:12:32

    Yeah.

  597. 1:12:33

    And Claude is deciding what tool to pick.

  598. 1:12:36

    Yeah.

  599. 1:12:37

    And you can prompt your way through it-

  600. 1:12:39

    Right

  601. 1:12:39

    ... but it's still highly non-deterministic.

  602. 1:12:42

    Right. So-

  603. 1:12:44

    Is there a way-

  604. 1:12:46

    So-

  605. 1:12:46

    To remove that-

  606. 1:12:47

    Yeah. So what I recommend is, A, in, in your modes, boil down the tools to what you actually need. So reducing the tools manually, either deterministically already in, in your prompt.

  607. 1:12:59

    So this prompt could have tools for, like what it should actually do, right? That would be one way. And then I can configure what I actually wanna have here.

  608. 1:13:07

    Like, this should be only doing Perplexity because I-- it, it needs to do research, and that's all it should do.

  609. 1:13:12

    With custom modes, that would be-

  610. 1:13:14

    Custom mode? Yeah.

  611. 1:13:15

    Different pockets of like code like this, code like this, and-

  612. 1:13:18

    Right

  613. 1:13:18

    ... then you kind of pick your pockets of tools.

  614. 1:13:20

    Yes. So custom mode is one way, and then the other one is you can actually mention specific tools. So if you go in here into add context, and then you can actually point it to specific tools.

  615. 1:13:30

    So you're not doing like the look up things on GitHub, and you try to find the right verbiage that it gets the right tool. You can just actually mention the tool of it should, um, for example, resolve library D.

  616. 1:13:42

    So, so you can just add these here, and then it will be handed to the AI of, like, these are the tools the user wants to use.

  617. 1:13:49

    Yeah, but if you do select... It seems like you

  618. 1:13:53

    programmatically select the tool-

  619. 1:13:54

    It's, it's still, it-- Yeah.

  620. 1:13:56

    Application.

  621. 1:13:56

    Right.

  622. 1:13:58

    No one... No end user is not gonna say here they don't care about tools. The end user is working with the chatbot. What tool it needs to use-

  623. 1:14:06

    Yeah

  624. 1:14:06

    ... is still not determined.

  625. 1:14:08

    Yes. Yes. Tool calling is inherently always... E- even in this case, we're telling the AI it should use it, but it might not use it. Yeah.

  626. 1:14:15

    Yeah. But there's... The dude in the GCP session was like, "Yeah, this could be determined." It's not. There is no finite tool there, so I'm just trying to understand if there's-

  627. 1:14:23

    Yeah

  628. 1:14:23

    ... something here that's like, "I like the instructions."

  629. 1:14:26

    Yeah.

  630. 1:14:28

    Close to that, but still not.

  631. 1:14:29

    Yeah. So my t- timer's down to zero. Maybe just go back to the slides to wrap it up.

  632. 1:14:36

    We have more.

  633. 1:14:36

    We have more, right? Um, vibe coding. So we showed workspace instructions, we showed dynamic instructions which only apply to parts of the tool set. Uh, we showed custom tools, a little playwright, deep research.

  634. 1:14:52

    Uh, I haven't showed using web docs. Like, actually, one of my favorites, just point it to an existing repo and say, "Read this repo if you have questions." MCP works great for that.

  635. 1:15:01

    When I work in MCP server, I just tell it, "Look in the TypeScript SDK server for Model Context Protocol if you have questions," because we have cross-repo search. It just works.

  636. 1:15:10

    Um, the a- agent actually has access to problems and tasks. So if you have tasks set up and you have linting set up, things will just work. So make sure those are set up in your template.

  637. 1:15:20

    Um, generic commits I showed, and then fine-grained review. You can pause at any time. If it asks you questions, you can always type something in and keep steering it into the right direction, and you can trust read-only in specific tools.

  638. 1:15:34

    And I showed you also editing. So yeah, uh, instructions, keep refining them as it makes mistakes. One of the key ones is commit often. I didn't show commits now, but any time you g- have a working state, just make sure you commit it so AI can continue making mistakes and be creative.

  639. 1:15:53

    And then last one, there's a clear pause button in the lower end if AI goes off and you're like, "What is it doing?" Like, is it doing, doing the right thing?

  640. 1:16:00

    Just, just pause and review, and that's possible as well. Uh, I showed a bunch of this for spec development already, but it's really about having a spec, having a, like, done a plan and doing more custom prompts and tools, which I showed.

  641. 1:16:14

    Um, showed reasonable prompts. Um, there's more MCPs for database access and logging and project tracking, like the GitHub MCP. And there's also access to actually tests and do debugging within the agent as well.

  642. 1:16:29

    So if you ask it to test-driven development like we did, it will actually start running the tests if they're set up in VS Code correctly. And then we talked briefly about models as well.

  643. 1:16:37

    So if you wanna use o3 for any of the cool stuff, the, the deeper thinking, you can do that as well.

  644. 1:16:45

    Um, spec-driven is really about focusing on the spec, and I think a great way to do that is just create the spec from all the conversations you had about the spec.

  645. 1:16:57

    So one way, if you have a transcript from a meeting about the project you wanna do, just feed that in and make sure you call out what the final decision is.

  646. 1:17:05

    It's a great way to have meetings, [laughs] but it's also a great way to not write the spec yourself in the end.

  647. 1:17:10

    Are there any tools to determine whether a spec is good or not?

  648. 1:17:15

    Like, on the opposite side of that, like if-

  649. 1:17:17

    Right

  650. 1:17:17

    ... somebody writes a spec or a project requirements document-

  651. 1:17:19

    Right

  652. 1:17:19

    ... is like a... One of the, one of the guys-

  653. 1:17:22

    I would ask AI [laughs]

  654. 1:17:24

    On, on, uh, Twitter, he merely asked what people say about this. Says what he does is he has it generate a spec, and then he has it critique the spec-

  655. 1:17:32

    Yeah

  656. 1:17:32

    ... and say what are things that it's missing and how could it be better and stuff like that. And he basically-

  657. 1:17:36

    Yeah

  658. 1:17:37

    ... argues with the LLM about the spec until he gets it to a state that he wants.

  659. 1:17:41

    Yes. Ar- arguing with AI is one great way. So if I... I, I have focused on one run prompt, um, or prompt

  660. 1:17:48

    is... Where is one critique idea is one I like of just ask me three questions about my idea, right? Just have AI go into thinking mode, like what would you ask somebody for feedback, um, and have it critically analyze your stuff.

  661. 1:18:05

    So these prompts, like those are basically the next level of prompt crafting where you don't just ask it to code, but pull it in as a thought partner, as a design partner, as somebody who can poke, um, holes in your idea along the way.

  662. 1:18:18

    So yeah. Um, further review steps is-

  663. 1:18:23

    Is there anything of a similar mode?

  664. 1:18:27

    You, you now can create one. So we haven't-- don't have a plan mode built in, but we also know ask edit agent will not be there forever. So it's, it's a, like, series of evolutions.

  665. 1:18:37

    Ru has way more modes that you can customize.

  666. 1:18:40

    Right.

  667. 1:18:40

    So I think we wanna allow de- developers to create their own, um, because I even see very few demos of people inclined using plan. They just give it a thing and then it runs, right?

  668. 1:18:50

    Yeah.

  669. 1:18:50

    So.

  670. 1:18:51

    'Cause I find, like, when I was using plan, it was so... It was clapped, but it was so much better using plan.

  671. 1:18:55

    Yeah.

  672. 1:18:56

    I should assume it would become a general pattern, but maybe not.

  673. 1:18:58

    It is. Yeah. When planning in, in vibe coding, you even do planning and then writing the implementation plan. So you will spend way more time on that initial just what and how we're doing things, and then you let it implement.

  674. 1:19:12

    So that would be even plan, write the implementation plan or like write the spec, write the plan, and then implement. So you would even have three modes if, if you do it correctly.

  675. 1:19:21

    And then, yeah. So that's really the last one. So takeaways. You gotta experiment. You gotta figure out what works for you. Like, at what point can you just give it a task and it runs with it?

  676. 1:19:31

    At what point do you wanna give it a task and write a spec first?

  677. 1:19:36

    And then implement, um, keep giving it feedback and iterate. So never just accept a bad answer. And then really work on your process, like what, what works best for you, what works best for your team, and use modes and prompts and instructions to ingrain that.

  678. 1:19:50

    Um, there's some bonus mistakes you can screenshot. [laughs]

  679. 1:19:54

    I'll make sure I make them all.

  680. 1:19:56

    Yeah, please. One more. There's one more. One more screenshot. [laughs]

  681. 1:20:00

    It's gonna end up like Emacs where it has major modes and you can have multiple minor modes.

  682. 1:20:03

    Minor modes, yes. That's how you end up with prompts and custom modes right now. So gotta clean this up too. And then, yeah, lastly, I mean, there is, there is a sweet spot for how you define your code bases for AI.

  683. 1:20:14

    So you wanna have well-structured, self-explaining code. You wanna have the instructions set up. You wanna have examples in your instructions. You wanna keep instructions updated. So that's it.

  684. 1:20:28

    That was my unplanned workshop. Thank you for coming. [laughs]

  685. 1:20:32

    That was really good.

  686. 1:20:32

    Was kind of planned. I learned about it Monday. [outro music]