📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Real World Development with GitHub Copilot and VS Code — Harald Kirschner, Christopher Harrison

AI Engineer1:19:33

Transcription

[Music]

We have um VIP coding at scale. It's a

talk I'm going to give at the expo in a

very short version without all the

hands-on stuff. So this is whatever how

long this will take. It's all about VIP

coding. So we're going to 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? Um and then if what does even

embracing exponentials mean in this

case? So, and that's we're going to get

into that and but we're definitely going

to forget that code exists. 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.

So, slowly forgetting that code exists

and you want to review every piece of

code, but building trust and adding

guardrails to the AI is what this talk

is about.

And his VIP coding journey starts kind

of initially what people most people saw

of just like I built an app in just one

day and I put it online and I made money

and I then things happened to the app

and things got leaked and things were no

longer fun and that that's that fun

chaos state of vibe coding and we're

trying to move to professionals then and

that initial state is what I'm now

terming yolo vibes. It's the unofficial

wording, but it's all about creativity

and speed and it's a good place to be.

It's because there is instant

gratification. It's getting things up.

It's about learning. It's not about

shipping products, but and so we need to

get there.

Second stage is structured wipes. It's

all about balance and sustainability

like how do you bring mainten

maintainability more readable code like

things you might actually somebody in

the end might want to read that code and

you have a handover to somebody else and

you want to have some quality control

that what you built is maintainable and

not just a throwaway project

and lastly we get to spectrum vibes and

if you have done anything on Reddit or

on blocks in the in the past then few

past few weeks you've probably seen

people sharing their kind of best

practices. 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 but

reducing that chaos while maybe keeping

the fun.

So VIP coding initially where we see

this outcome first as I said it's all

about no you not don't even want to look

at the code like if you're in an editor

and I see actually people framing their

experience in AI editors of low code

mode so they they just look at the 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 and it's about auto

accepting changes. So until it maybe no

longer works, we might want to undo but

otherwise we just keep talking to I know

you did this wrong. Try again. Um fix it

or go to jail is a very popular one. So

you can try all kind of but stay in

natural language. Don't don't be too

specific. 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

want to get something out. That's why I

actually have a ton of conversations

with larger companies who want to who

start a conversation like how can we do

white coding and for them it's all about

getting people who are non-technical to

be able to communicate ideas. 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 want

to do in the mockup. It's all about

learning. Like I we had last uh two

weeks ago at build we had one hour vibe

coding on stage live and people build

games and I use 3JS which I have tried

many years ago but I haven't used 3JS in

a while but once I got the code running

I could start getting into how it is

structured how does it make shapes and I

could actually understand technology

because I have something working and

that's that's really the power of

getting something up and running that

that gives the technology something to

hands on to actually try out and of

course personal projects. So um I'm sure

how many of you had s sit down with

somebody who's non-technical and showed

them vip coding and just build a your

water tracking app or you 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.

So let's do some yolo vibe coding. This

is AI generated. So the images do

reflect the vibe. So, this is really

about voice input, relaxing. I guess

coffee is in there as well, but let's

get it going.

Um,

okay.

So, in VS Code for YOLO VIP code, we're

going to start with an empty VS code.

So, hit command shift N. Sorry.

>> Are we supposed to use

>> I might show off insider stuff, but all

of what I'm showing is also unstable. If

you have insiders, use insiders.

Insiders is the pre-release version of

VS code that ships on a daily basis like

Firefox Nightly, uh, Chrome, Canary, Dev

Ships Nightly.

So on your left side, you will have no

folder open. On your right side, you

will have co-pilot open. Everybody got

this?

Raise your hand. Cool. Awesome.

So um who has used agent mode? Just

checking so not have to explain

everything. Okay, cool. So agent mode uh

the probably the default you want to

have set and default was setting. Um

clots on four is great at front end

stuff. So for me personally my my

favorite big enough. Yeah.

And now what's interesting so just one

one quick tour of how we're going to do

VIP coding is there's actually this

interesting setting here. This is

zooming. Yeah. Is news workspace in VS

Code. And for this first round of VIPE

coding, I want you to go into this tools

picker down here and actually disable

scaffold new workspace

because it will help you scaffold your

workspace, but it will lower the vibes

if you're just trying to do HTML

coolness.

>> Oh, yes. Uh tools picker down here.

That's the little one. Uh, how to get

into this menu? There's a tool this

tools picker.

>> Okay.

Uh,

>> oh,

yes, it might be in. 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.

>> Yes. Ask mode. 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. Cool. And then second step,

go into the tools menu, which only

appears in agent mode. Soon agent mode

is going to be default. And this whole

where is my my tools picker is less of a

problem.

Okay. So, and then what you want to

uncheck is this new section.

>> And we're going to check out new.

>> Yes. Do you see nothing?

>> I see those two items and nothing else.

That's not enough. I I see more more

see. Um you might be Yes, I think that's

fine. Let me just

>> shoot.

>> Okay, good insider.

Yes, I think 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 VIP coding

using because it's so hard to disable.

And the way we're going to do this is um

create a uh let's do react vite. And

that's first lesson for VIP 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. So react

invite are good ways to run a project.

Um website

that for what do we do? Um hydration

tracking

water hydration

water consumption app

simple

and big accessible UI

following uh what do we tell the AI to

make it really beautiful? We tell it I

like to tell it Apple

design principles.

You can infuse it with whatever design

sense you have. Mine is just make it

look pretty which always helps somehow

adding that extra. So right water

tracking hydration and that's 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? Uh I might actually not do

reactivite but might Oh yeah, let's do

that with material design with material

material design.

So yeah, now we got a stack. We got a

design direction and we tell told it to

make it pretty. Okay.

And then hit run. So we're now in in a

no folder state. So what's first

happening? It's going to tell us to

empty to open an empty folder. Everybody

got that in there? Flow. Okay.

It's going to hit continue. Now it's

going to actually ask me to open a

folder. Going to make a new folder.

Vibing at

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 going to continue

the setup. 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 AI coding tools is what

every second person does. 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.

Uh we got the latest. So we 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.

That's the first rule of VIP coding. As

we said, we we don't want to look at

code and we just want to have the AI do

stuff. So what you can do in my my case

I'm going to 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. So use with caution

are going to auto approve which means

all of these continue buttons won't

happen anymore and we're just going to

get results. So check that box close it

again and we can hit continue here.

This is using invite. This is fine. Now

we're gonna stop worrying about the

code. Uh but I can still read the plan.

So install materiali dependencies create

hydration tracking apple inspired design

and project structure.

So it's running commands. Um

why is there files already in here?

Okay, cool.

skips.

Where did it create? Oh,

the music come from

because I already did something. Cool.

Okay, we're on. Yes, keep going.

This case, I tried to create something

and then it ran another terminal

command. Keep going. That's fine.

Is it doing stuff for you? Do you see

things popping up?

Oh, proof.

>> Oh, wait. Did we That was in the last

version.

>> Okay. Okay.

Okay.

>> Let me let me check in VS Code stable.

[Music]

>> Yeah, that's my my problem of not being

enough in stable. I shouldn't run

workshops.

There you go.

>> Why is that different than

>> So you found it in

>> Thank you so much. There's two ways to

get to the same thing, but it's

different menu.

>> Oh, there

>> the settings.

>> There's settings from the bottom and

settings from the top. They're not the

same.

>> Okay.

>> I'm happy to go later. There's settings

up here.

>> I use the gear. I use the gear.

>> Yeah.

>> Okay. Where's the other one?

>> Oh, and the other setting. Yeah. Yeah. I

have customized my UI too much as well.

Cool. Question.

Yes, that's that's what we I think I

should have said auto approved before.

So, it's active for the chat session,

but this is the setting I just showed is

the is the auto approve. So, you all the

continue buttons are basically gone and

it just autoroves.

>> Yeah. Yeah. And for MCP tools, we

actually do have drop downs to allow

always allow for session and always

allow for workspace and or not always

allow. So there's some more fine grain

things we're rolling out to more tools,

but for Yep.

>> Yeah, I think it's the auto proof is not

applied to the current session. That's I

showed it too late. I should have done

it the other way around.

Okay, we got some material design coming

in. And this is where you need to get

your coffee and just wait.

>> That's a good idea. Let's do that. Okay.

Uh, open new window.

Um, okay. What What prompt did we use?

Create a right. So, okay. Now, in the

new window, I'm going to do autoproof

first.

Um,

approve.

Auto proof is already on. That's good.

Um, this is another window now. And

we're going to do the same thing. And

we're actually going to use material

design. I guess is still out there,

right? And or fluid. Fluent. That's the

Microsoft one.

Let's see what this looks like. Again,

it's going to prompt me for a folder.

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 VIP

coding really shines is continue

is just trying I had really success of

just like what are different signup

flows that we can create like create

three different versions of this design

to explore what this could look like.

Okay, it installed.

It's up in 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 got to figure out

what's running what. And now this flow

actually over here runs without any

confirmation. So we we set auto approve

in a correct order.

And it's now just creating v installing

installing fluent.

You notice that we got the wrong fluent

because there's a dependency. Now it's

fixing those.

>> Yes.

>> So do I. 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. Most

probably have them on the other lower

side. and you go in here and go into

settings. And this is what it should

look like.

Do your settings look like this. And

then if you look for approve

sorry can't type auto approve.

Do you see it?

It might be insiders.

It's all blur.

We're shipping on a monthly basis and I

thought we tweeted about it end of last

month. So,

so you found it.

Okay.

>> I'm not trying to

use this. I want to stop

The challenge is auto.

>> Yeah. Yeah.

>> Yeah.

>> I'm looking for that right now.

>> Yeah.

>> 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. But the um

there is definitely 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

and how you can easily allow list

things. So I've been mostly thinking

about the how to do it right. Right.

Okay. And I got two VIP coding sessions

going on here. and hide this one. This

is not this is for tomorrow.

This vibing is happening.

So what you see it creates an app tsx.

It creates an app CSS. It also creates

copilot instructions. Uh who's been

using copot instructions before? Yeah.

So that's that's one way. This out of

the box experience just does things for

you. It uh comes with instructions baked

in which is nice. It understands which

stack you're using. That's mostly about

it. It already captured my design

principles that I eloquently put in

please make it look like Apple and now

it's actually there's a clean, minimal,

intuitive interface, consistent UI and

everything else.

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.

Okay, this is still working on the index

CSS and

the other one is working on the HTML

file.

>> Yeah,

>> it would just do it for it would usually

do it as it creates the project. I

haven't typed anything else so far in.

We're just we're just vibing.

it. Um, here created one.

>> Let me see if it created one both.

>> Okay, there we go.

>> Our first app is done.

Hydration tracker. Stay healthy. Stay

hydrated. Today's progress. We're on a

quick ad. 500 milliliters. And it went

with metrics. Isn't that beautiful?

Just how I wanted it. Maybe you got my

accent. I don't know. Um, we can do plus

minus.

>> It's interesting how mine looks

different.

>> Yeah, I know. I know. So, does does

everybody looks as nice as mine? Do you

already see yours? Okay.

>> Yeah, yours better.

Yeah, that's this like a very wide open

wipe 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

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. 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 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

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

uh more animated

adding

particles maybe

that's good. So mu pet paper. So this is

all is this material design. This is

material design. Yeah.

>> I didn't I hit start down here. If you

have the browser preview open did it

open fail?

>> Cool. So this is um to point out two

features. So one is in this flow at some

point it basically started the task.

It did npm rundef

and then the next step it did it opens

simple browser and simple browser is

this VS code in browser preview we have

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 reference reference and as CSS

into the current chat. So if I scroll

back down here, I see what's being

attached. Actually click it. So

everything you see under message is in

the context. The element screenshot

somehow didn't didn't make it through.

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.

Okay.

Ran into snacks. We don't care about

that. Let's check the other one.

Number two, fluent design. Uh, this is

what it came up with. It's a little bit

plain.

Um, this is sad.

Okay, at least it has a goal reach.

That's nice. Um, and it has recent

entries, too. 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.

Um yeah so that's the simplicity of VIP

coding and

using the new tool out of the box. Uh if

you are an insiders and you can disable

new tool it's easier to do like a single

file HTML thing because new tool is

definitely biased towards using npm and

installing packages. So it always ends

up a little bit more um complex.

>> Do you work with

>> Yes. basically the team I work on. So I

Hi, I'm Harold. I work on VS Code.

>> Yeah.

>> Really cool to understand

what are the new things that just like

like a quick dip somehow. Someone could

show me like I have them both on my

machine,

>> right? and I use them both but then I

like fall behind a couple days back.

What are the new things and why I should

be using insight? What's

>> 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. 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 point.

>> That's a great idea. We're going to make

an MCP server that summarizes what

landed. Yeah. Yes. I like that. Okay.

Okay.

>> Let's let's do it for the next next

demo.

>> 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. It's all about um actually

didn't show that. I could have shown

that is different panel styles. So, if I

go back here um you can actually move

this into the editor.

which is nice. So, some people like that

more space for your chat. Um, you can

also,

if I go back into my panel,

>> oh, I moved in into a drop down 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. You can put them in

parallel to your codes. You can use all

the like window management things.

>> Yes. Wait, how did you know? Um,

okay. Where do we go? In new window.

>> There you go. Now you have a chat in its

own window. You can put it on your own

monitor. So, feature request succ. And

you can actually pin it on to be top.

So, now if I run this and I can close

this

uh

let's move that away first. So, I can

accept this. This we all going to keep

and close it.

and then close the other one. And now we

have the output and we can just move our

chat across and fully focus on the

exponentials

that are happening in this window. Yeah.

So that's one way you can really manage

the space how you want it. Uh new

workspace flow we showed. So it's really

this optimized

CLI first question.

>> 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

um

add a dark mode please and maybe

give it a cool name that works with a

younger audience who needs to drink more

or maybe my kids. Make it for kids so a

little more kids friendly. Thank you.

Bye.

Okay. So, u 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.

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 co-pilot as well I think

we did at some point which I haven't

used in a while.

Okay. Uh

I said all that keyboard shortcuts.

There's a keyboard shortcut if you want

to customize it to actually hold down

while you talk and then let go. Uh

visual context I showed attaching. It's

great for wireframes. the in preview

gets hot reload. It just works and you

can attach the elements using that

little send button.

And then auto accept. I showed the auto

approve tool. There's also an auto tool

auto approve tool setting. Uh there's

also an auto accept after delay. If you

don't have that on, I love autosave.

It'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.

This is still going. What is this doing?

I forgot. Um Oh, this is adding the

particles. Cool. It still worked on it.

Got to compile it.

Okay. Got stunning animations. That's

great. That's what I wanted.

Is it doing it now? So, let's keep

it does animate. Nice particle. Nice.

Look at bubbles. Okay. Um I don't like

it. 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 tell me, "Oh, you

don't have checkpoints. I can't undo

stuff." But if you already accepted

stuff or if you want to go back to

something like this is like these

particles but for for V0ero. Oh, that's

beautiful. I love it. Uh we don't need

that. Then you can also bring that back.

I just need to see that again. That was

really nice.

Okay. So

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 of the work it did. You

can easily go back and forth to see the

before and after as well.

Yeah, but in VIP code, you don't want to

look at the code because we don't look

at the output.

Okay. Um, that's the YOLO toolbox.

And I think as I mentioned before, you

want to 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. like can I just give it wide

task to explore a space and it will like

come up with something interesting or do

you need to how detailed do I need to be

when does it make mistakes if I give it

a general task maybe about Java where

it's not as good at like what will it do

um next one is known frameworks we went

with V material design things that are

kind of off the shelf and haven't

changed in a long time uh in a large

scale so you want to use something

that's popular and have has been

consistent

And lastly, we use it as a whiteboard.

Um, we showed there 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.

Structured VIP 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

VIP coding can work for us. This is

where we can bring somebody

non-technical in. give them a good

starter template that has a consistent

text stack that comes with clear

instructions for the LM 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 you would need

to work on this codebase

and that's really kind of 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.

All of that can already be baked into

the instructions.

So I see a lot of companies bring that

into their bootstrapping for green field

projects. So we have something and you

can often times it's you go into a

meeting and you have a product that

looks already finished because you

vipcoded it with your go-to stack. It

uses your internal design system. So it

already looks way more polished.

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.

So let's do structured VIP coding. This

is now the image as I explained is now

has wireframes and uh more charts. So

that's what makes it more structured.

There we go. It's open.

So what I'm going to do now I think I'm

going to push this.

It's still running.

Let's see if this runs. I did

create this vibe coding. I do have

another one that I can share. Just look

at this one. And I'm going to push it to

GitHub.

It's gone through fine. Um, cool. Front

end vibes. Perfect. Um,

this is all vibes. So, we're going to

make this live. Um, this is commit

and then

Yeah. Oh, yeah. commit misses one who

has been using this commit button here.

So cop will write your commit message

then this looks good and now sync

changes and I'll share the repository

this repository might still be an old

name. Let me see.

Yeah, probably. Let me just check where

it sits because I forgot where it sits.

Oh, it's perfect. Sleep wipes.

This is one of my VIP exercises. Okay.

>> For browser window

>> which the

>> just open.

>> Oh yes. Yes. Um yes the simple browser

simp. So we go into

simple browser show. That's it.

Sleep wipes.

Okay. And then npm install on it. And

then yeah,

it would have prepared better. It would

have been a code space and a dev

container and you just click open in

code spaces and things work. Um, come to

my next show and then we'll get that

fixed.

Yeah,

let me just open the code space to see.

Now I'm curious if it just works.

Anybody's been using code spaces on

GitHub?

Not many. Okay. Occasionally

>> the complexity lies in all the different

versions of

regular version all the work. out of

bugette. Yeah. Yeah.

>> Everything just work.

>> Yes, it mostly does, right? But mostly,

right?

>> Yeah.

>> It's 95% there.

>> Yeah.

>> But it's the 5%. When something doesn't

work, you just go back.

>> Yeah.

>> You could try. I haven't I'm actually

not running it in container but if you

wanna

>> the container is just a NodeJS one and

it should work too. I did add a

container. See

>> I vip coded my container too.

Wait I can now check. So if you ever

wonder what you did on a project um

so this is where I created my container.

This is where I just asked uh GitHub

copilot to update my dev container. just

look at my codebase and update my dev

container. So I did a good job here.

Should have maybe

remembered that I did that as well.

Okay, if if ready meanwhile why you

clone while you npm install anybody got

it working already

still. 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/copilad-instructions.mmd.

It's a markdown file that's included

with all your agent requests, all your

chat requests, all your inline chat

requests. It just copilot basically

gives a grounding foundation knowledge

about your codebase. And sometimes they

feel a bit repetitive like um depending

I saw some demos of like use basically

it repeats linting rules that you expect

the AI to just follow anyways. But I I

like um my go-to is just a oneliner on

what what's your stack. 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.

>> I was experimenting with this 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 like give people some coding

structure.

>> Yeah,

>> if you have a whole team of

probably don't want to touch it.

>> So this is in your repo. So I think it's

a good team exercise to iterate on it

like it shouldn't be a stale document.

You can put this in your user settings

as well.

>> You probably don't want it with each

app. You probably want to right

>> you could do it set up a way that you

code and then each app.

>> So I've been trying to convince on 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 want to

use. So working on that discovery

sharing is there always one file or can

you opt in for like you have different

languages different things you're

building.

>> Good question.

>> Yeah. So we have this one now. This

these are new instructions. So they

these are these become rather monolith

and large and unwieldy.

And now uh just point out here before I

go to new ones I do also guide which

tools to use. I do have my first MCPS in

here and I already tell it for front-end

Q&A and review use the browser tools

that come from playright 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 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.

Um the rest is just syntax formatting

optimizations um

key conventions. Yeah. And then the

other format we have is github

instructions.instructions.mmd.

And those have this front matter syntax

that's becoming more popular for rules

of what what files it should apply to.

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

enable this context then then 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

going to be more

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.

Um yeah so those those are new uh those

shipped I think the last version so they

should be also in stable and we're

actively working on those. So, and then

the the new new thing is plans or

prompts. And there we have the first

kind of 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 and your AI champion in the team

handcraft this this perfect prompt which

oneshots your test

consistently and now everybody shares it

in Slack, copies it around. Once you run

the right test, you go back to Slack,

copy it back, and that's what you want

to use prompts for. 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

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. I'm

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 you use my plan and spec prompt

you see over here on the left.

>> Can you make that custom? Yes, these are

custom ones. So the ones I have here,

these are already custom in the

workspace.

And then the other ones

I don't have I'm not showing. So I think

we do there's a new menu.

>> Yes. Yeah. Yeah.

So let's make it here. Um,

so this this one actually just landed

yesterday because insiders we can now

finally have an entry point because

everybody kept asking how do I create

prompts and I have to tell them which

command to find it in. So this is the

new prompt 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 want to write custom

instructions. 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.

And yes, there should be a prompt

sharing website where you can find these

amazing prompts that I create. And next

week we're going to

>> So each problem is like a separate

separate from each other.

>> Yes. 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 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 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.

>> What about if you wanted

to

always do TDD?

>> 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 because it just landed. Sorry,

you can't follow along or if you're not

insiders. So custom modes will show up

um in the dropdown. So this is like

going to now it just went into the menu,

created a custom mode, and now I can

pick where it shows up. So got github/

chatmodes which put it into the

repository or I just want to keep it for

myself. So a good pattern if you just

want to experiment put it in your user

folder. If you want to 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.

And then uh we're going to do name this

one TDD.

And then we're gonna

ask AI to fill it in, right? Uh prompt

um expert expert prompt uh for just

typing.

Hi there AI. We need a prompt that

enforces testdriven 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. Cool.

Thanks.

It's important.

I didn't know I didn't say I'm now

worried because I didn't actually

activate my files context. Let's see if

it

I think it should have a tool to just

create modes for you if you ask it. So

it's gonna going to make that an MCP

server next.

Okay. Oh, it got it. Okay. Oh,

wonderful. So we have a test driven

development assistance. This is my code.

We want read the code. Test development

assistant core principles understand.

Red write failing tests first.

Beautiful. I wouldn't have not green.

Wow, it does follow refactor, improve

code quality, strict rules, noation

tests. Beautiful. Beautiful. So, this

our new TDD mode.

Um,

>> we've done it four. Looks pretty good.

It has emojis

example. Should we try it out?

Okay, we have

>> um

>> use a framework. It's framework

independence. Looks like

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

Yeah.

>> Okay. So, it has it right there.

>> It does make some stuff up. Yeah.

Wouldn't need to do that. I can take

this out. I already have my so

um cool test drive the design wonderful

okay let's do it so we have this project

which doesn't do anything if you just

run this um

npm rundev 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 I want a

dashboard for GitHub issues just use

mock data because I don't want to wire

it up to GitHub. So, we want to have

maybe some interesting contribution

metrics. And but first, actually, let's

make a plan.

Meanwhile, while I type this in, let's

stop it. Um, TDD.

So, dashboard for GitHub.

Um, don't worry.

So now again we give it a very broad

task but we can now put it into TDD mode

which is our new amazing test and

development mode that follows all the

best practices I assume that the knows

about TDD

and let's see

>> so wait that's you created a new mode

there

>> yeah because 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.

>> So

>> is the mode

in agent mode but based on file. So it's

a it's a custom agent mode.

>> Yes. Yeah.

>> When is that going to be live?

>> Uh it's in insiders now. It's going to

ship next week on on the 11th.

>> Yeah.

Insider ships.

>> 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.

Yes. Um so for most of you this menu

will just have these entries and the in

insiders only

if you look for modes in the command

pallet. So command pallet you can also

click up here show run commands and then

modes and that's that's the place

Yeah.

>> Yeah. Are they in in the output or in

the problems view?

>> Okay. Yeah. Yeah.

Yeah.

>> Yeah.

>> Yeah.

>> It if it runs the commands itself, it

will start looking at the term. So the

easiest way if you if you run the

deployment and the scripts itself

through co-pilot itself. But otherwise

there's also context actually if you

look here we have um the

is actually

terminal last there's terminal last

command which includes the output as

well in term selection. Now if you ask

me why they're not in the at context I I

couldn't tell you right now. Yeah,

but yeah, that's working. I think I did

this thing wrong, though. TDD,

let's just see.

Oh, the tools. It configured it made up

tools. So, it did that's that's the part

it made up. This actually those are not

the right tools.

Um, this is why it didn't do anything

was when I it just basically acted like

chat and gave me the code because all

the tools it tried were

uh it didn't have any right access. So

let's try this again.

So this probably a 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

said tools

and if you just make a tools entry here

to tools

you can now actually click here and say

which tools in this case this is a

planning prompts. So mostly you probably

wanted to look at perplexity

to come up with anything it needs to

find on the internet. Uh I can select

that. So that's the way you can now have

tools constrained for a studio prompt.

which which always helps with kind of

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 and

also insiders only we have tool

groups uh tool sets as should we call

them so tool sets I And how do I get

here? 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

opens this one here. And that's only for

>> servers, right?

>> Anything both built in and MCP actually

a lot of the tools you see here, we

cleaned this list up. If you use

insiders, you see them. 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. Uh codebase search

has grap 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 back

end and we expose this now as something

you can create yourself. So my research

tool for example has the perplexity tool

to ask deep research questions and it

also has fetch

No, I didn't. No, we can show.

>> Yes, I can. Wouldn't be a talk without

MCP. This is

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.

Um, okay, there we go. So let's talk

about MCP. This is doing

something. Let's see. Not

understand requirement. It create mock

data. Redph face writing tests. It wrote

tests. It Oh, it found that there's a no

package library. That's that's sad. Um

and it created the test utility

and then it tried to run the tests.

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 but that's modes TDD. It

will ask now for because we asked it to

ask for confirmation. So that's why it's

now pausing. It wrote tests. Uh they're

all red. So that's good.

Okay, we accept it. And let's go into

MCP. So MCP servers, who has already MCP

servers set up in their VS Code?

Good. Okay. Um,

one way to get SP servers is editing

JSON. And that's really, um, there's a

few other ways, but let me show you

another way. Um, Playright MCP. Who's

been using Playright MCP? It's probably

one of the coolest ones. Um, so

Playright MCP is a browser testing

framework and allows people to access

the browser locally and just take

screenshots, run websites, get

accessibility audits, a whole bunch of

utility in there. and how to get it for

VS Code. There's a JSON blob that you

can all ignore and just hit install

server.

So install server is 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, you can hit install extension that

powers the same process. So now I can

inst um don't hit show configuration. We

need to move this down. But install

server actually puts this now into my

user settings. And so you can see you

can have MCP servers both for yourself.

And I have the one for GitHub and for

GPAD which is a cool one. I can

recommend this one.

And then yeah play right now. So you can

already see how many um tools I

provided. You can see if anything fails

you can get to the output.

If there would be configuration, I can

show that here. There's actually just

pad needs a GitHub token. So, it's a

local MCP. And what have you ever seen

that one? 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 is 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.

So, it doesn't ask me more.

>> That's going to prompt you.

>> It would if it but this this shows

basically that it already has a token.

But if you enter it the first time and

we can actually try that if I

>> where is it actually

>> uh in VS codes key storage. So if on Mac

it actually uses keychain.

>> Oh okay.

>> Yeah. So

>> what other MCP servers?

>> Yeah. So I can show um JPAD is fun. It's

done by actually um Zia GitHub. So

Jispad.de justpadmc that's mostly I'm

going to 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. So, I really like this

one. Uh, it adopts a ton of like recent

MC MCP stuff, but I think the main ones

we usually see is GitHub MCP server

just pet just

>> lost in tangent.

>> Okay.

>> Yeah. So this if you just want to play

around with it with a really well done

MCP server, then that's that's one. Um

not saying GitHub one isn't as good, but

it's um

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.

>> Yeah.

Yeah.

>> Yeah.

>> Okay.

>> Yeah. Okay.

>> Okay.

>> Right. And in your case, that server is

already running. So, how to hook up?

>> Okay. Cool. Yeah, let's do that. So, SSE

um same way basically. So, what just

finding my

max it out? So, go back to my MCP. JSON

and down here.

>> Yes. So, to clarification, MTP.json sits

in docs code right now and it's per

workspace and that's shared across

everybody. So hopefully it puts stuff

either you work on it alone and it's

just for you or everybody is happy to

have those MCP servers.

>> Yeah.

>> Yeah.

>> Yeah. Yeah. Okay. And then the what's

now if you hit add server you will find

what you're looking for.

And then from ads 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.

>> It's no long 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 because they have these

long running connections long

>> long. Yeah. Yeah. So

yeah, so that's that's where you put in

your yeah your MCP sec server. And if

you want to do it manually, it's really

just um

you get a nice autocomplete too. So if

you pick a name

example and um this would be the type

would be

not studio actually it's http yeah you

already would you would use http and I

would already yell at you that you don't

have a URL so I'm going to put URL

so this this is how uh everything is by

default as stdio once you have a URL

Well, I think I can take this out. Yeah.

So, would be just that entry.

Yes. So to get Yes. Um so many demos I

see people hit start here as well just

to see that it's working. It's a nice

configuration that just make sure it's

working. 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.

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 Copilot just to get the tools.

>> Yes. Yeah.

>> No, actually you want to be in agent

mode. Agent mode ask mode will not run

MCPS for you. uh you can you can go

uh because as mode is not uh it's not

actually there's no function calling

inherently right fun as mode is really

this traditional askd question will

answer based on its training there or

its context

um

yes so there is also an ask what you

don't have tools you would see it um but

I can do actually does this still work

Um,

let's do that more quickly.

I think we actually do this still.

Yes. So, we're actually blurring the

line a bit now. So, if you do That's not

working. Okay.

Yeah. But if you actually reference

specific tools in ask mode, it will

invoke them for you. But by default, the

the way where you want to execute tools

is in agent mode.

Yeah.

>> 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 your model? So um

so I have gamma 3 through lama which

runs locally and I have open routers

perplexity R1 uh which is actually a

fine-tuned model from of deepseek R1

from perplexity. 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 Enthropic, Azure,

Cerebras, Grammite, Rock, all of these.

Um Olama 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,

but but eventually it's going to be

small powerful models. Um that makes

sense. So

Uh, it might be because of your

anthropic tier, right? That's

um or is it

>> you have four? Oh. Oh. Uh, the other

one. Yeah, you might be in agent mode.

So, we do actually filter them down. So,

that's an 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. 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.

>> Yes. Yeah. You you will see that. So if

I do just um one example here

uh so just bad so a you can disable them

if you already if you want to be faster

you can do command down and just go

through. So contact 7 is the one I want

to keep player I can disable right now

but once you start using them

>> this is command up and down the power

user way of navigating

those. So these are all built-in MCP

servers. And once you start, you can

actually now if I want to be very

explicit and I know which tools I want,

I can use my tool sets or I can mention

specific tools that are um in in my

list. But I can also now just go in and

say what do we want to do here? Um

research

uh

GitHub metrics.

Let's actually use the research one

because we created it.

Sounds better when I use research here.

Use it in a sentence

for productivity.

And what happens now is uh this one has

now is an agent mode. We have the

research group set or tool set. So we'll

either use perplexity or fetch.

And one of my perplexity keys actually

outdated because it failed before. Let's

see. Okay, so you see I already actually

proved this before. So you see a that it

runs the server and you actually click

the server to see where it comes from.

Um if I would have not autoproofed this

because auto proof is still on from our

previous session, you can actually go in

here and edit what it's sending.

Um which now doesn't make sense because

it's it's already sent and then it

writes up uh what it found in this case.

Does that ask?

>> Uh, that's just the odd name for the

perplexity tool.

>> It happens to coincide.

>> Yes. Yeah. Yeah. It's just um the verb

should be before. So, it's their their

naming. Yeah.

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 community dashboard. So I

did the research using perplexity and

then ask it to write a spec from it

using a little query I have here for the

spec. Um

so that's one way you can quickly get

things done.

And just to point out this one, it's a

pointing it to the spec. So these are

actually resolved by the AI. So if you

point it to specific files, we do

actually validate those as well. So if

you get them wrong, I think they're

underlined. Um, you can also click them

so you get all the markdown

goodies. Um, and then you just ask it to

write on the spec. Do nothing else. Uh,

use perplexity to look up stuff.

Don't lose details. Keep updating the

spec. So that's that's one way to work

on specs. There's probably more more

tools we we're going to add here. Yeah.

So that's MCP. Any other MCP questions?

uh per MCP. So the MCP itself doesn't

run anything except when you support

sampling

which we do on insiders. Sneak preview

for tomorrow. So but yeah, if you use

sampling, actually I guess I have to

explain sampling. So as sampling is a

way for MCP to reach back out from the

server to the client to use the LLM on

the client and it's you can often think

the best use cases are to summarize use

cases are if you want to um reduce the

amount of tokens you send to the back to

the client to explain something. So

there's a few ways, but um overall

there's not enough integration of

sampling. Um but so we are the first

ones to to get it out there because we

already have the LMX posts. So that's

cool.

>> Yeah. to pick the model kind of.

>> No.

>> Yeah.

>> Yeah.

>> But it's still hardly

>> right. So,

>> so

>> 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 deterministicity already

in in your prom. 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 do I

actually want to have here like this

should be only doing perplexity because

I it needs to do research and that's all

it should do

>> with custom mode that

>> custom mode. Yeah pockets of like this

like this right then you kind of pick

your pockets of

>> 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. 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 lab

ID. 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.

It's it's still

>> Yeah.

>> Right.

>> Yeah.

>> Yes. Yes. Tool calling is inherently

always even in this case we're telling

the AI it should use it but it might not

use it. Yeah.

Yeah.

>> Yeah.

>> Yeah. So, my timer is down to zero.

Maybe just go back to the slides to wrap

it up.

>> There more, right? Um, wipe coding. So,

we showed workspace instructions. We

showed dynamic instructions which only

applied to parts of the tool set. Uh we

showed custom tools playrite deep

research. 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.

When I work on MCP server I just tell it

look in the TypeScript SDK server from

the context protocol if you have

questions. Because we have cross repo

search it just works. Um the 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. Um generate commits I

showed. And then fine grain review, you

can pause at any time. If it asks you

questions, you can always type something

in and keep steering it into right

direction. And you can trust read only

in specific tools. 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 anytime you have a

working state, just make sure you commit

it so AI can continue making mistakes

and be creative. And then last one,

there's a clear pause button in the

lower end. So if AI goes off and you're

like, what is it doing? Like is it just

doing the right thing? Just just pause

and review. And that's possible as well.

Uh I showed a bunch of this for spectrum

development already but it's really

about having a spec having having a like

done a plan and doing more custom

prompts and tools which I showed

um showed us 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. 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. So if you want to use 03 for any

of the cool stuff, the the deeper

thinking, you can do that as well.

Um

specri 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.

So, one way if you have a transcript

from a meeting about the project you

want to do, just feed that in and make

sure you call out what the final

decision is. It's a great way to have

meetings, but it's also a great way to

not write the spec yourself in the end.

Are there any tools to determine whether

spec

>> right

>> I would ask

and say what are things missing and how

could it be better and stuff like that

and we basically argued with about

Yes, arguing with AI is one great way.

So if I I have focus on one run prompt

um or prompt

is where's 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.

So these prompts like those are

basically the next level of prom

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 I

so

yeah um front view steps is yeah

>> a plan you you now can create one. So we

have don't have a plan mode built in but

we also know askedit agent will not be

there forever. So it's it's a like

series of evolutions. RU has way more

modes that you can customize. So I think

we want to allow developers to create

their own. Um because I even see very

few demos of people in client using

plan. They just give it a thing and then

it runs right.

>> Yeah.

>> It is. Yeah. I mean planning in in VIP

coding you even do planning and then

writing the implementation plan. So you

would spend way more time on that

initial just what and how we're doing

things and then you let it implement. 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 you do it correctly and then

yeah so that's probably the last one. So

takeaways, you got to experiment. You

got to figure out what works for you.

Like at what point can you just give it

a task and it runs with it? At what

point do you want to give it a task and

write a spec first 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.

Um there's some bonus mistakes you can

screenshot.

>> Yes, please. One more. There's one more.

One more screenshot.

>> You can end up like major modes. You can

have multiple minor modes.

>> Minor modes. Yes. That's kind how you

end up with problems in custom modes

right now. So I got to clean this up

too. And then yeah, lastly

there is there is a sweet spot for how

you define your code bases for AI. So

you want to have well structured

self-explaining code. want to have the

instructions set up. Want to have

examples in your instructions. I want to

keep instructions updated. So that's it.

That was my unplanned workshop. Thank

you for coming.

[Music]