WEBVTT - The Missing Piece Is Ideal State

0:00:19.800 --> 0:00:22.400
<v S1>Hey. What's up? So Theo's got me triggered right now.

0:00:22.440 --> 0:00:25.520
<v S1>He basically put out this video here talking about how. Yeah,

0:00:25.560 --> 0:00:27.520
<v S1>turn off cloud code's memory. That's what the title of

0:00:27.520 --> 0:00:30.160
<v S1>the video is. I want to let you hear the

0:00:30.160 --> 0:00:32.080
<v S1>opening piece that kind of triggered me here. Made me

0:00:32.120 --> 0:00:34.520
<v S1>want to do this video. So let's listen here real quick.

0:00:35.400 --> 0:00:36.680
<v S2>Work effectively in a code base. It needs to know

0:00:36.680 --> 0:00:37.840
<v S2>what the code base is, where things are, and how

0:00:37.840 --> 0:00:39.040
<v S2>to get stuff done. I found that a lot of

0:00:39.040 --> 0:00:40.800
<v S2>people want to store this information in some special way

0:00:40.800 --> 0:00:42.280
<v S2>that AI agents will operate with. Well, I've seen so

0:00:42.280 --> 0:00:44.319
<v S2>many different systems and libraries, plugins and features and stuff

0:00:44.320 --> 0:00:45.480
<v S2>that I have built over the last few years to

0:00:45.480 --> 0:00:47.080
<v S2>try and automatically encode what they're doing in the code

0:00:47.080 --> 0:00:48.840
<v S2>base in some special way. That'll make the agent always

0:00:48.840 --> 0:00:50.080
<v S2>do what they want. I've even noticed that in cloud

0:00:50.080 --> 0:00:51.880
<v S2>code recently, it seems to use its memory a whole bunch,

0:00:51.880 --> 0:00:53.199
<v S2>where it will save things in some magic hidden file

0:00:53.200 --> 0:00:54.760
<v S2>somewhere on the computer after you ask it to do something,

0:00:54.760 --> 0:00:56.400
<v S2>and now it will keep randomly doing that forever. You

0:00:56.400 --> 0:00:57.760
<v S2>can't tell from how I've been spending this so far.

0:00:57.760 --> 0:00:59.280
<v S2>I'm not a fan of these memory systems. I don't

0:00:59.280 --> 0:01:00.560
<v S2>think memory is the right place to keep track of

0:01:00.560 --> 0:01:01.720
<v S2>how things should be done in your code base. That

0:01:01.720 --> 0:01:02.120
<v S2>worked okay.

0:01:03.480 --> 0:01:07.440
<v S1>I don't think memory is a good place to keep

0:01:07.480 --> 0:01:11.440
<v S1>track of how things should be done in your code base.

0:01:13.360 --> 0:01:18.660
<v S1>That's what he said. Okay, so here is my response

0:01:18.660 --> 0:01:22.780
<v S1>to this. The primary cause of AI systems not making

0:01:22.780 --> 0:01:26.700
<v S1>us happy, is it not knowing what we want? Okay,

0:01:26.940 --> 0:01:29.940
<v S1>now he is objecting to a specific thing in a

0:01:29.940 --> 0:01:33.899
<v S1>memory system, which is this automatic writing that cloud code

0:01:33.900 --> 0:01:36.180
<v S1>is doing. So basically cloud code has a feature. If

0:01:36.180 --> 0:01:38.060
<v S1>you turn it on where it will write to this

0:01:38.060 --> 0:01:41.219
<v S1>memory system. I think it's literally memory.md unless they changed

0:01:41.220 --> 0:01:44.660
<v S1>it and that memory MD would be consumed every time

0:01:44.660 --> 0:01:47.340
<v S1>you start a session. So it's a cool idea, right?

0:01:47.380 --> 0:01:49.260
<v S1>But he's saying it decays over time. He's going to

0:01:49.260 --> 0:01:51.340
<v S1>show you how it decays over time. And he's actually

0:01:51.340 --> 0:01:53.900
<v S1>right about that. But he is still throwing out sort

0:01:53.900 --> 0:01:57.660
<v S1>of this baby with the bathwater, basically still saying that

0:01:57.660 --> 0:02:00.980
<v S1>memory systems are bad. I'm going to present an alternative view,

0:02:01.220 --> 0:02:04.660
<v S1>which goes against both Theo and Matt Pocock on this,

0:02:04.660 --> 0:02:06.580
<v S1>and kind of takes us in this direction of talking

0:02:06.580 --> 0:02:09.140
<v S1>about bitter pill engineering, and what are we actually trying

0:02:09.140 --> 0:02:11.340
<v S1>to do with a harness? So let me let me

0:02:11.340 --> 0:02:14.500
<v S1>show you the architecture that I use, which is open

0:02:14.500 --> 0:02:16.780
<v S1>source project. It's called life OS. This is the overall

0:02:16.780 --> 0:02:20.829
<v S1>system that I use and I think it is superior

0:02:21.150 --> 0:02:24.550
<v S1>to what Matt Pocock is doing and to what Theo

0:02:24.590 --> 0:02:27.269
<v S1>are doing. Okay. And to be clear, they are both way,

0:02:27.310 --> 0:02:29.870
<v S1>way better developers than me. Ten years ago, like I

0:02:29.870 --> 0:02:31.710
<v S1>was not a developer, I was a programmer. And they

0:02:31.710 --> 0:02:35.590
<v S1>were both hardcore real developers. So in terms of development skill,

0:02:35.590 --> 0:02:39.990
<v S1>I think they are just way better. Okay, no question there. Unfortunately,

0:02:39.989 --> 0:02:44.230
<v S1>I think they're still in that world of building development skills, specifically.

0:02:44.269 --> 0:02:46.350
<v S1>Matt Pocock. And I think Theo looked at his skills

0:02:46.350 --> 0:02:48.910
<v S1>recently and wasn't a huge fan. But anyway, Matt Pocock

0:02:48.950 --> 0:02:51.550
<v S1>is doing amazing stuff on the development side. Theo is

0:02:51.549 --> 0:02:53.990
<v S1>obviously doing amazing stuff. He's actually my favorite AI creator

0:02:53.989 --> 0:02:56.030
<v S1>right now. I watch like every video that he puts out,

0:02:56.549 --> 0:02:58.470
<v S1>and that's why I was specifically triggered by this because

0:02:58.470 --> 0:03:00.710
<v S1>I think he's getting this wrong. So the way that

0:03:00.710 --> 0:03:04.829
<v S1>I approach this in life OS is I am specifically

0:03:04.829 --> 0:03:09.190
<v S1>addressing the problem universally across the entire harness of one problem,

0:03:09.549 --> 0:03:14.510
<v S1>the AI, not knowing exactly what would create euphoric surprise

0:03:14.510 --> 0:03:18.010
<v S1>in my brain. That is the ultimate mission. It's actually

0:03:18.010 --> 0:03:22.769
<v S1>in our system prompt is to pursue what would make

0:03:23.730 --> 0:03:26.570
<v S1>euphoric surprise in my brain. Okay, that is the meta

0:03:26.609 --> 0:03:30.329
<v S1>goal of all the entire harness. Okay, so in order

0:03:30.329 --> 0:03:33.010
<v S1>to do that, guess what you need, you need extremely

0:03:33.010 --> 0:03:36.570
<v S1>detailed knowledge of exactly what I want. Okay. And this

0:03:36.570 --> 0:03:39.410
<v S1>is where I think Theo is getting confused and he's

0:03:39.410 --> 0:03:43.130
<v S1>conflating multiple things because his video is basically saying memory

0:03:43.130 --> 0:03:46.170
<v S1>systems are bad. Okay? That's ultimately what he's talking about,

0:03:46.370 --> 0:03:48.770
<v S1>but he's kind of throwing out the whole thing with

0:03:48.770 --> 0:03:51.610
<v S1>this specific problem that he has, which is automatic systems

0:03:51.610 --> 0:03:55.170
<v S1>that write crappy memory files are bad. Well, of course

0:03:55.170 --> 0:03:57.130
<v S1>we agree with that, right? So let me show you

0:03:57.130 --> 0:04:00.890
<v S1>an alternative. Okay. Have the goal of the harness be

0:04:00.890 --> 0:04:06.010
<v S1>to produce euphoric surprise in you, the user, the principal. Okay. Second,

0:04:06.650 --> 0:04:08.930
<v S1>I believe and this is a strong claim, I believe

0:04:08.930 --> 0:04:11.570
<v S1>that the way that we've been doing development before, and

0:04:11.570 --> 0:04:13.689
<v S1>the way that Matt Pocock is currently doing it with

0:04:13.690 --> 0:04:15.490
<v S1>all these extra skills, and you've got to call the

0:04:15.490 --> 0:04:18.820
<v S1>extra skill and you're producing these test documents you're producing,

0:04:18.820 --> 0:04:21.780
<v S1>these plans and these specs and then a PRD, and

0:04:21.780 --> 0:04:23.580
<v S1>then you've got big documents and you turn it into

0:04:23.580 --> 0:04:26.580
<v S1>small documents. And then the Ralph Loop actually, where you

0:04:26.580 --> 0:04:29.219
<v S1>take one agent and you work on one particular feature.

0:04:29.780 --> 0:04:33.940
<v S1>In my opinion, these fail for one specific reason. They

0:04:33.940 --> 0:04:36.340
<v S1>don't have the plot. When you break things apart, you

0:04:36.340 --> 0:04:40.660
<v S1>tear them apart. They cannot see the plot. The plot is,

0:04:40.860 --> 0:04:44.900
<v S1>in my opinion, for all of AI, the ideal state. Okay.

0:04:44.940 --> 0:04:49.220
<v S1>You cannot achieve euphoric surprise. Your harness cannot achieve euphoric

0:04:49.220 --> 0:04:52.260
<v S1>surprise for you if it doesn't know what you want. Okay.

0:04:52.300 --> 0:04:54.700
<v S1>And here's the trick. I could be asking for a

0:04:54.700 --> 0:04:59.140
<v S1>beautiful picture of a watercolor butterfly. Or I could be

0:04:59.140 --> 0:05:02.060
<v S1>asking for come up with an amazing business plan and

0:05:02.060 --> 0:05:03.820
<v S1>idea that's going to make me tons of money. Or

0:05:03.820 --> 0:05:06.340
<v S1>I could be asking for build me a beautiful website

0:05:06.340 --> 0:05:10.020
<v S1>that talks about typography. All of those things can be

0:05:10.020 --> 0:05:14.380
<v S1>articulated in one sentence or two books. Okay. How much

0:05:14.380 --> 0:05:18.280
<v S1>detail is in my mind for what a perfect typography

0:05:18.320 --> 0:05:21.880
<v S1>site looks like, how much detail is in my mind,

0:05:21.880 --> 0:05:24.080
<v S1>and how much have I given the AI. The gap

0:05:24.080 --> 0:05:26.600
<v S1>between these two is the problem with all AI harnesses.

0:05:26.600 --> 0:05:28.600
<v S1>It is the problem with all agentic work. It is

0:05:28.600 --> 0:05:32.800
<v S1>the problem with all AI, prompt engineering, intent, engineering, graph,

0:05:32.840 --> 0:05:36.320
<v S1>all this stuff. It's all floating around. It's all orbiting

0:05:36.560 --> 0:05:39.240
<v S1>this core concept. This is my argument to you. Doesn't

0:05:39.240 --> 0:05:40.880
<v S1>mean I'm right, doesn't mean you have to agree with me.

0:05:40.880 --> 0:05:43.200
<v S1>This is my argument. I think I am right, okay?

0:05:43.720 --> 0:05:46.760
<v S1>It is the ideal state. What we do in life

0:05:46.760 --> 0:05:50.360
<v S1>OS is the ideal state artifact one document. Now, if

0:05:50.360 --> 0:05:52.360
<v S1>you have some giant system, you're building an entire role

0:05:52.400 --> 0:05:55.960
<v S1>playing game. You can have one Isa that links to

0:05:56.000 --> 0:05:59.360
<v S1>other ISAs and they're all cross-linked. Like if you've got

0:05:59.360 --> 0:06:01.840
<v S1>a full geography system and a language system over here

0:06:02.080 --> 0:06:04.680
<v S1>and like creating NPCs over here, like you could break

0:06:04.680 --> 0:06:06.840
<v S1>it apart if it's big enough. But for all intents

0:06:06.840 --> 0:06:11.360
<v S1>and purposes, that is still one giant Isa document. Now,

0:06:11.400 --> 0:06:14.000
<v S1>what a single document allows you to do is what

0:06:14.000 --> 0:06:15.720
<v S1>we have in our document. And I'm going to go

0:06:15.720 --> 0:06:17.650
<v S1>into detail in another video where I take you through

0:06:17.650 --> 0:06:18.930
<v S1>the code version of this, I want to show you

0:06:18.930 --> 0:06:23.450
<v S1>the architecture first. So this architecture basically says, here is

0:06:23.450 --> 0:06:26.250
<v S1>the stated goal. Here's the stated ideal state. We also

0:06:26.250 --> 0:06:28.730
<v S1>have a section where you can just dump a full

0:06:28.730 --> 0:06:31.170
<v S1>text conversation. I can actually call Chi and say, hey,

0:06:31.170 --> 0:06:32.930
<v S1>I want to make this thing. I literally call him

0:06:32.930 --> 0:06:34.570
<v S1>on the phone and he answers and we talk back

0:06:34.570 --> 0:06:37.930
<v S1>and forth. It's absolutely insane. But you could also use

0:06:37.930 --> 0:06:40.890
<v S1>the discuss skill, which is similar to Matt Pocock's really

0:06:40.890 --> 0:06:44.970
<v S1>excellent Wayfinder and grill me skills. So you're gathering information,

0:06:44.970 --> 0:06:46.930
<v S1>but what he's doing is he's kind of putting it

0:06:46.930 --> 0:06:49.570
<v S1>in all these various places and he's breaking it into

0:06:49.570 --> 0:06:52.850
<v S1>pieces and recombining it. It's like it's not one unified

0:06:52.850 --> 0:06:55.370
<v S1>thing that he is enhancing with this skill. And that's

0:06:55.370 --> 0:06:58.090
<v S1>the difference. That's the difference. When I do discuss or

0:06:58.090 --> 0:07:01.010
<v S1>I call Chi or we text back and forth or whatever,

0:07:01.250 --> 0:07:04.370
<v S1>whatever the interface is, we are updating, we are filling in,

0:07:04.410 --> 0:07:09.090
<v S1>we are enhancing, we are improving the quality of the

0:07:09.090 --> 0:07:12.130
<v S1>description of what perfect state looks like, of what ideal

0:07:12.130 --> 0:07:15.130
<v S1>state looks like for this website, or this local application,

0:07:15.130 --> 0:07:16.990
<v S1>or this mobile app, or whatever it is, or a

0:07:16.990 --> 0:07:21.390
<v S1>picture of a butterfly inside of here. In the ideal state,

0:07:21.390 --> 0:07:26.230
<v S1>we have these. These are individual testable claims. Boolean. Is

0:07:26.230 --> 0:07:28.870
<v S1>this true or not? Along with a testing function that

0:07:28.870 --> 0:07:31.350
<v S1>can make sure it's real. So this is the beauty

0:07:31.350 --> 0:07:34.030
<v S1>of this thing. The ideal state describes what you're trying

0:07:34.030 --> 0:07:38.190
<v S1>to build. It also has the specific criteria for building it. Okay,

0:07:38.270 --> 0:07:40.150
<v S1>here's exactly how you build this. It must do this.

0:07:40.150 --> 0:07:42.270
<v S1>This form must do this. It must be secure. It

0:07:42.270 --> 0:07:44.670
<v S1>must submit to the following location. It must only accept

0:07:44.670 --> 0:07:48.910
<v S1>these inputs. It then updates this database. Right. So very specific,

0:07:48.910 --> 0:07:51.470
<v S1>very clear things just like we've been doing with spec

0:07:51.470 --> 0:07:54.510
<v S1>driven development and test driven development for all this time. Right?

0:07:54.550 --> 0:07:57.630
<v S1>We're bringing it over into this larger sort of master concept.

0:07:57.630 --> 0:08:01.670
<v S1>So it is full of ideal state criteria which are

0:08:01.670 --> 0:08:05.110
<v S1>inside the ideal state artifact, the ideal state criteria. This

0:08:05.110 --> 0:08:09.230
<v S1>is insane. They are the build criteria. They are also

0:08:09.270 --> 0:08:13.150
<v S1>the testing harness. The ideal state artifact is the testing

0:08:13.150 --> 0:08:16.110
<v S1>harness as well. When I have a production app, I

0:08:16.110 --> 0:08:20.800
<v S1>have surface the surface.ai. I have human 3.ai. Both two

0:08:20.800 --> 0:08:22.840
<v S1>products that I have that have users that are out

0:08:22.840 --> 0:08:25.800
<v S1>there doing real things. In the private repo, there is

0:08:25.800 --> 0:08:29.520
<v S1>the ISO document. If I get rid of my entire

0:08:29.520 --> 0:08:31.840
<v S1>system and come back and say, okay, I've been whatever

0:08:32.000 --> 0:08:33.800
<v S1>meditating for six months and I come back and I've

0:08:33.800 --> 0:08:35.920
<v S1>got a brand new MacBook, I set up life OS

0:08:35.920 --> 0:08:39.000
<v S1>or whatever. I say, pull up the Isa for surface.

0:08:39.000 --> 0:08:41.800
<v S1>I don't say, hey, go find every single session where

0:08:41.800 --> 0:08:43.840
<v S1>we talked about surface. I don't say, hey, go find

0:08:43.840 --> 0:08:47.000
<v S1>all these different random documents spread all over the place,

0:08:47.280 --> 0:08:50.559
<v S1>plan file spec files, every conversation we ever had, all

0:08:50.560 --> 0:08:53.920
<v S1>the places where I corrected you and fixed previous errors

0:08:53.920 --> 0:08:56.480
<v S1>that we had in the Isa and went back and forth.

0:08:56.760 --> 0:08:58.640
<v S1>I don't have to say go and collect all of that.

0:08:58.640 --> 0:09:02.200
<v S1>It is in one place. Now you might be thinking, okay, yeah,

0:09:02.200 --> 0:09:04.240
<v S1>but this document is going to get really huge. Well

0:09:04.280 --> 0:09:07.320
<v S1>not really. That is getting easier and easier to pass.

0:09:07.640 --> 0:09:10.280
<v S1>First of all, for AI, as the context windows get

0:09:10.280 --> 0:09:13.640
<v S1>better as we get more efficient, but also the name

0:09:13.640 --> 0:09:16.120
<v S1>of the game for life OS is rip grep and

0:09:16.120 --> 0:09:18.780
<v S1>JQ right. We find the things we need in the document.

0:09:18.780 --> 0:09:20.300
<v S1>We don't have to parse the whole thing every single

0:09:20.300 --> 0:09:22.300
<v S1>time we have sections in there, you can go and

0:09:22.300 --> 0:09:25.060
<v S1>pull out the appropriate section. And most importantly, the work

0:09:25.060 --> 0:09:28.140
<v S1>being done by all these agents. It's all versioned, it's

0:09:28.140 --> 0:09:31.100
<v S1>all in GitHub, it's all committed. You can roll back

0:09:31.260 --> 0:09:34.700
<v S1>and you're also updating the changelog, the list of changes

0:09:34.700 --> 0:09:37.380
<v S1>that have happened to the OS or to the ISO

0:09:37.380 --> 0:09:40.500
<v S1>document for this particular task. And it's all being updated.

0:09:40.500 --> 0:09:43.180
<v S1>The history of decisions is all there. It is one

0:09:43.180 --> 0:09:45.100
<v S1>single document. So I could just pull this up for

0:09:45.100 --> 0:09:47.660
<v S1>a production app, and I have the full thing to

0:09:47.700 --> 0:09:50.300
<v S1>continue working on to add new things to. If I

0:09:50.300 --> 0:09:51.860
<v S1>want to add a feature, guess what? It gets added

0:09:51.860 --> 0:09:55.540
<v S1>as a feature. We add additional ideal state criteria. And

0:09:55.540 --> 0:09:57.220
<v S1>those are the things that get worked on. And those

0:09:57.220 --> 0:09:58.819
<v S1>are the things that get tested to make sure it's

0:09:58.860 --> 0:10:03.420
<v S1>actually functioning. So that is the ideal state system. My

0:10:03.420 --> 0:10:05.660
<v S1>argument is that it is the way things are going

0:10:05.700 --> 0:10:08.300
<v S1>to go. I said late last year that this is

0:10:08.300 --> 0:10:09.940
<v S1>the way things are going to go. It hasn't happened yet.

0:10:09.940 --> 0:10:11.260
<v S1>I thought it was going to happen soon. I thought

0:10:11.260 --> 0:10:14.660
<v S1>people like Theo and people like Matt and other people

0:10:14.700 --> 0:10:17.400
<v S1>building stuff like me on YouTube would already be talking

0:10:17.400 --> 0:10:19.559
<v S1>about this and the fact that we have to unify,

0:10:19.560 --> 0:10:22.400
<v S1>and the fact that all of AI's problem is the

0:10:22.440 --> 0:10:25.560
<v S1>gap between what's in our brain and what we want

0:10:25.600 --> 0:10:28.280
<v S1>versus what the AI knows, right? Another way to think

0:10:28.280 --> 0:10:32.000
<v S1>about this. It's called writer's block or writer's blindness or

0:10:32.000 --> 0:10:34.480
<v S1>expert blindness, where you try to explain something, you try

0:10:34.480 --> 0:10:35.800
<v S1>to write a book or something, and it's just a

0:10:35.800 --> 0:10:38.800
<v S1>garbage book because you haven't explained actually the stuff that

0:10:38.800 --> 0:10:41.439
<v S1>you know. Right? So that's a good reason to have

0:10:41.440 --> 0:10:43.360
<v S1>an editor because they can actually pull that out and say,

0:10:43.360 --> 0:10:46.320
<v S1>you need to explain this more. This is not obvious, right? Well,

0:10:46.320 --> 0:10:49.920
<v S1>the ideal state document and the discuss skill is designed

0:10:49.920 --> 0:10:52.439
<v S1>to fill that in. Right. And it actually triggers now

0:10:52.440 --> 0:10:54.360
<v S1>at this point, if you don't have enough detail, it

0:10:54.360 --> 0:10:56.640
<v S1>actually triggers discuss and has a conversation with you back

0:10:56.640 --> 0:10:59.080
<v S1>and forth, which then fills in the ice more and more.

0:10:59.440 --> 0:11:04.360
<v S1>So central concept, you have to synchronize your brain and

0:11:04.360 --> 0:11:09.040
<v S1>your AI harness across the entire system. Okay. And let's

0:11:09.040 --> 0:11:11.440
<v S1>talk about skills next because that's also where this is.

0:11:11.560 --> 0:11:13.880
<v S1>So I have a skill system. It's a custom skill system.

0:11:13.880 --> 0:11:17.090
<v S1>It's based on cloud code, but it's a specific skill

0:11:17.090 --> 0:11:20.770
<v S1>system that has three main components. So the skill.md is

0:11:20.770 --> 0:11:23.370
<v S1>basically the overview, and it's got a router in there

0:11:23.370 --> 0:11:26.329
<v S1>similar to our cloud.md. It's got a router for workflows.

0:11:26.370 --> 0:11:30.210
<v S1>Workflows are specific prompts, specific tasks that get done within

0:11:30.210 --> 0:11:33.570
<v S1>the skill. So the workflows are write the blog post,

0:11:33.610 --> 0:11:36.530
<v S1>edit the blog post, publish the blog post, scan the

0:11:36.530 --> 0:11:40.330
<v S1>blog post for errors. I have one specifically, it's called enrich.

0:11:40.450 --> 0:11:42.570
<v S1>So that goes and takes all my previous content, finds

0:11:42.570 --> 0:11:44.690
<v S1>out if it's relevant to this area, and it adds

0:11:44.690 --> 0:11:46.970
<v S1>a link for where I said those three words. It

0:11:46.970 --> 0:11:49.970
<v S1>links to a previous thing. So I probably have like

0:11:49.970 --> 0:11:53.090
<v S1>15 different workflows inside my blogging skill. So the concept

0:11:53.090 --> 0:11:56.010
<v S1>is I want to blog workflows are these 15 things.

0:11:56.010 --> 0:11:58.730
<v S1>And then the third piece, which is pretty unique here

0:11:58.850 --> 0:12:02.170
<v S1>is as much as possible is turned into CLI tools,

0:12:02.410 --> 0:12:06.330
<v S1>deterministic code, direct API calls. I use very few MC

0:12:06.690 --> 0:12:10.010
<v S1>because I've reverse engineered the MC into CLI tools. So

0:12:10.170 --> 0:12:13.370
<v S1>the workflows call the code. The code executes, hopefully doing

0:12:13.370 --> 0:12:16.830
<v S1>as much as possible, and the concept calls the workflows, right?

0:12:16.870 --> 0:12:18.590
<v S1>So I just say, hey, I want to blog about

0:12:18.590 --> 0:12:20.550
<v S1>this and it goes and builds a blog. Now let

0:12:20.550 --> 0:12:24.750
<v S1>me show you something. This is my site here. Sorry

0:12:24.750 --> 0:12:26.309
<v S1>about the flash bang. It's not quite a flash bang

0:12:26.310 --> 0:12:29.070
<v S1>because it's not exactly white, it's sepia. But this here

0:12:29.070 --> 0:12:31.590
<v S1>is my blog and I want to scroll down here.

0:12:31.990 --> 0:12:34.350
<v S1>Look at this latest content. Do you notice anything about

0:12:34.350 --> 0:12:41.710
<v S1>these images? Look at that. Not half bad. Okay, notice

0:12:41.710 --> 0:12:43.190
<v S1>that it's kind of sepia. Got a little bit of

0:12:43.190 --> 0:12:46.110
<v S1>purple here. Got the dark charcoal. Oh, look at this one.

0:12:46.110 --> 0:12:49.110
<v S1>Really cool. Do you notice that the concept of the

0:12:49.110 --> 0:12:53.110
<v S1>art matches the content? All right. So I just went

0:12:53.110 --> 0:12:57.150
<v S1>and edited this. I actually used this device and which

0:12:57.150 --> 0:12:59.590
<v S1>is recording. I can just go for a walk and

0:12:59.590 --> 0:13:01.430
<v S1>talk to this device. Or I could call Kai on

0:13:01.430 --> 0:13:03.630
<v S1>the phone and say, hey, here's an idea. And I

0:13:03.630 --> 0:13:05.950
<v S1>just ramble for the whole one hour walk. I'm just

0:13:05.950 --> 0:13:09.510
<v S1>rambling about text and I then say, go write a

0:13:09.510 --> 0:13:12.510
<v S1>blog post. Well, I didn't make any of these prompts.

0:13:13.230 --> 0:13:16.960
<v S1>Another crazy experience with AI. My AI found what was

0:13:16.960 --> 0:13:19.360
<v S1>killing my Mac and helped me replace two apps in

0:13:19.400 --> 0:13:23.319
<v S1>about an hour. Okay, that is talking about specifically this

0:13:23.360 --> 0:13:25.680
<v S1>app right here, which we made together. Well, really, I

0:13:25.720 --> 0:13:28.280
<v S1>made it for me, but I gave the requirements and

0:13:28.280 --> 0:13:30.280
<v S1>guess what? It built an Isa. There is an Isa

0:13:30.280 --> 0:13:34.840
<v S1>for actually the UL bar app. Anyway. Diversion there. This

0:13:34.840 --> 0:13:38.080
<v S1>piece of art was made from the content that I did.

0:13:38.520 --> 0:13:42.000
<v S1>All of that is in my blogging skill. My blogging

0:13:42.000 --> 0:13:44.280
<v S1>skill only has it in one place, which is in

0:13:44.280 --> 0:13:48.800
<v S1>the blogging skill. Every single thing that I love that I. Okay.

0:13:48.840 --> 0:13:51.480
<v S1>My typography. You have no idea how many hours I've

0:13:51.480 --> 0:13:54.800
<v S1>been blogging since 99. This system is perfectly optimized to

0:13:54.800 --> 0:13:57.720
<v S1>be exactly the perfect blogging system that I like the

0:13:57.720 --> 0:14:00.120
<v S1>way this subtitle is done, the way the title is done,

0:14:00.120 --> 0:14:04.400
<v S1>this little marker right here. The entire thing is perfectly

0:14:04.400 --> 0:14:07.480
<v S1>in my ideal state, which is articulated perfectly in the

0:14:07.480 --> 0:14:11.680
<v S1>blogging skill. So this is where I'm disconnecting from. Theo. Okay,

0:14:11.800 --> 0:14:15.700
<v S1>he's saying memory systems are bad. I'm saying that the

0:14:15.700 --> 0:14:18.460
<v S1>entire harness. This is all text files, right? What's the

0:14:18.460 --> 0:14:22.900
<v S1>difference between a system prompt and a cloud.md file and

0:14:22.900 --> 0:14:25.700
<v S1>your skill files, which is also a markdown file, the

0:14:25.700 --> 0:14:29.500
<v S1>main skill.md and your prompts. Okay. The code is quite

0:14:29.500 --> 0:14:32.780
<v S1>different because that's deterministic in code, but ultimately the entire

0:14:32.780 --> 0:14:34.860
<v S1>harness is a whole bunch of guidance. It's a whole

0:14:34.860 --> 0:14:39.820
<v S1>bunch of stewarding and shaping and adjusting to get things

0:14:39.820 --> 0:14:41.860
<v S1>the way that you want them. Right? So all I'm

0:14:41.860 --> 0:14:47.500
<v S1>doing is I'm making that extremely explicit. So this entire thing,

0:14:47.660 --> 0:14:49.940
<v S1>I literally just talked now and I say, go make

0:14:49.940 --> 0:14:51.740
<v S1>a blog about this and it goes and makes a

0:14:51.740 --> 0:14:55.540
<v S1>blog about it. And this technical diagram right here is

0:14:55.540 --> 0:14:59.820
<v S1>created by my technical diagram workflow inside my art skill.

0:15:00.700 --> 0:15:04.020
<v S1>So look at this. I didn't link this chi link

0:15:04.020 --> 0:15:06.900
<v S1>this for me by following the skill which perfectly articulates

0:15:06.900 --> 0:15:10.100
<v S1>my ideal state for a blog post. So all of

0:15:10.100 --> 0:15:13.700
<v S1>this is all the same idea. Okay? It is. How

0:15:13.700 --> 0:15:15.830
<v S1>do I get to the perfect blog? How do I

0:15:15.830 --> 0:15:19.150
<v S1>get to the perfect blog post? The perfect design? Okay,

0:15:19.190 --> 0:15:21.910
<v S1>same if I'm building an app. Same if I'm building

0:15:21.910 --> 0:15:25.070
<v S1>a new platform, a new security tool, I have ways

0:15:25.070 --> 0:15:27.710
<v S1>that I want it to be done perfectly. And that

0:15:27.710 --> 0:15:31.990
<v S1>is what I articulate inside of the skill system. So

0:15:32.270 --> 0:15:34.110
<v S1>I wouldn't put that in the system prompt. I wouldn't

0:15:34.110 --> 0:15:36.030
<v S1>put it in the cloud.md file. I put it in

0:15:36.030 --> 0:15:39.590
<v S1>the skill system because it is a particular task. It's

0:15:39.630 --> 0:15:42.550
<v S1>a specific task. We are blogging. I've got other ones

0:15:42.550 --> 0:15:45.230
<v S1>for making outbound voice calls, so I can call and

0:15:45.230 --> 0:15:48.030
<v S1>schedule a restaurant for me and put it on my calendar.

0:15:48.030 --> 0:15:49.830
<v S1>So it's got a calendar thing. It's got an email thing,

0:15:49.830 --> 0:15:51.950
<v S1>it's got an outbound call, it's got blogging, and I've

0:15:51.950 --> 0:15:56.470
<v S1>got about 150 skills, small specific skills that articulate how

0:15:56.510 --> 0:15:58.870
<v S1>to do this perfectly according to what I consider to

0:15:58.910 --> 0:16:02.150
<v S1>be perfect. So this is why I disagree with what

0:16:02.190 --> 0:16:04.870
<v S1>Theo is saying about memory systems. He's thinking of it

0:16:04.870 --> 0:16:09.110
<v S1>as a whole bunch of like little tiny mini rules. No, no,

0:16:09.150 --> 0:16:14.230
<v S1>the memory system is the cohesive system that merges your

0:16:14.330 --> 0:16:17.530
<v S1>brain with your harness. That's what it is. Okay. In

0:16:17.530 --> 0:16:20.770
<v S1>my opinion. And the whole centerpiece of the entire thing

0:16:21.130 --> 0:16:24.250
<v S1>is this ideal state artifact. It is the fact that

0:16:24.250 --> 0:16:27.090
<v S1>for anything we are building, we can always come back.

0:16:27.530 --> 0:16:29.810
<v S1>Let me give you another example. Let's say that we

0:16:29.850 --> 0:16:32.130
<v S1>are building as I am with a buddy of mine

0:16:32.130 --> 0:16:36.010
<v S1>named Andrew. Building kind of like a gaming system, a

0:16:36.130 --> 0:16:40.490
<v S1>system of building systems, actually of building other gaming systems. Well,

0:16:40.770 --> 0:16:44.170
<v S1>when I go to do that, I can't remember everything

0:16:44.170 --> 0:16:46.330
<v S1>all at once. When I go on my first walk,

0:16:46.330 --> 0:16:48.810
<v S1>I'm talking about this other area. And I actually have

0:16:48.810 --> 0:16:51.370
<v S1>tons of detail about this other area, about the integrity

0:16:51.370 --> 0:16:53.770
<v S1>of the combat system and the simulation system to be

0:16:53.770 --> 0:16:57.010
<v S1>able to simulate auto battlers or tank tower defense like

0:16:57.050 --> 0:16:59.770
<v S1>type of games or whatever. Right. Well, I can't remember

0:16:59.770 --> 0:17:02.250
<v S1>all of that at any given time. In fact, someone

0:17:02.290 --> 0:17:04.929
<v S1>asked me, oh, what makes your gaming system better? In fact,

0:17:04.930 --> 0:17:06.850
<v S1>people ask me what makes life OS better? I can't

0:17:06.850 --> 0:17:09.689
<v S1>articulate all of this, which is why I'm doing this video.

0:17:09.690 --> 0:17:13.570
<v S1>I'm trying to articulate all at once cohesively, right? The

0:17:13.570 --> 0:17:16.420
<v S1>point is, at any given time you might not remember.

0:17:16.420 --> 0:17:18.740
<v S1>You yourself cannot remember because the idea is so big

0:17:18.740 --> 0:17:21.460
<v S1>and it has so many components and there's so much detail. Well,

0:17:21.460 --> 0:17:22.859
<v S1>where are you going to put that? Where are you

0:17:22.859 --> 0:17:24.059
<v S1>going to put that stuff? Are you going to go

0:17:24.060 --> 0:17:26.180
<v S1>and gather prompts and talk to your AI? And it's

0:17:26.179 --> 0:17:29.500
<v S1>going to put it in some session file. No, because

0:17:29.500 --> 0:17:32.059
<v S1>that will be lost and it will not be unified. Right.

0:17:32.100 --> 0:17:34.500
<v S1>So the purpose of this discussed thing is to keep

0:17:34.540 --> 0:17:37.699
<v S1>adding pieces, as you remember, as something breaks, as you

0:17:37.699 --> 0:17:39.660
<v S1>have a new idea, as you realize one of your

0:17:39.659 --> 0:17:42.700
<v S1>previous ideas is total garbage. You're like, hey, remember, we're

0:17:42.699 --> 0:17:44.859
<v S1>going to do that combat integrity system. We're going to

0:17:44.899 --> 0:17:47.179
<v S1>use this method. Yeah, I watched a bunch of videos.

0:17:47.179 --> 0:17:50.059
<v S1>It's total garbage. Let's do this instead. Boom goes and

0:17:50.060 --> 0:17:53.260
<v S1>cleans it up. The ideal state is now improved, not

0:17:53.260 --> 0:17:57.100
<v S1>in some random location in the actual ideal state artifact, right.

0:17:57.139 --> 0:18:00.580
<v S1>The authoritative artifact. All right, so that's the skill system.

0:18:00.580 --> 0:18:03.379
<v S1>That's the ideal state artifact system. This is basically the

0:18:03.379 --> 0:18:05.899
<v S1>Kanban board that shows the work that's actually happening. And

0:18:05.899 --> 0:18:08.980
<v S1>the algorithm is really just this hill climbing system. It's

0:18:08.980 --> 0:18:12.419
<v S1>also got a model router that switches between like fable

0:18:12.459 --> 0:18:16.760
<v S1>GPT five six, soul GB. Five six Cyber or Daybreak

0:18:16.879 --> 0:18:19.919
<v S1>for all my offensive security stuff. It actually uses a

0:18:19.919 --> 0:18:24.240
<v S1>whole separate agent. Actually, I could show you that real quick. Yeah.

0:18:24.240 --> 0:18:28.320
<v S1>So down here, if you look at this haiku, sonnet, opus, soul, Gemini, grok,

0:18:28.320 --> 0:18:31.519
<v S1>cyber and Max and Forge and Helios. So basically Helios

0:18:31.560 --> 0:18:34.680
<v S1>is his own agent that does only cyber stuff anyway.

0:18:34.719 --> 0:18:38.159
<v S1>Not important. Not sure why I showed you that. All right.

0:18:38.159 --> 0:18:40.159
<v S1>So going back to this. Oh yeah. Evals. That's the

0:18:40.159 --> 0:18:42.079
<v S1>other really cool part of skills. But we can talk

0:18:42.080 --> 0:18:45.359
<v S1>about that later. This basically shows all the different content

0:18:45.760 --> 0:18:47.840
<v S1>that's being executed. I think I showed you that earlier

0:18:47.840 --> 0:18:49.959
<v S1>or it's in another video. You should watch that as well.

0:18:50.280 --> 0:18:53.600
<v S1>But the algorithm is just how you're actually moving through

0:18:53.600 --> 0:18:57.119
<v S1>the ideal state. Which models are you using, which intelligence

0:18:57.119 --> 0:18:59.519
<v S1>level are you using? And it actually pivots up and

0:18:59.520 --> 0:19:02.239
<v S1>down based on the work task. So if you shouldn't

0:19:02.240 --> 0:19:04.559
<v S1>be using fable for this, switch out to soul or

0:19:04.560 --> 0:19:07.399
<v S1>switch out to haiku in some cases, although not very often,

0:19:07.399 --> 0:19:11.600
<v S1>or sonnet or opus or whatever. So ultimately the system

0:19:11.600 --> 0:19:15.650
<v S1>is euphoric, surprise and ideal state. The system prompt is

0:19:15.649 --> 0:19:18.730
<v S1>just like super minimalist. This is just a context routing system,

0:19:19.409 --> 0:19:21.969
<v S1>and the skill system is quite unique and I think

0:19:22.010 --> 0:19:25.129
<v S1>really helps with the determinism and basically making it more

0:19:25.129 --> 0:19:27.769
<v S1>dependable to actually pursue your ideal state as things are

0:19:27.770 --> 0:19:30.570
<v S1>being executed. And the algorithm is kind of just like

0:19:30.609 --> 0:19:34.090
<v S1>managing the whole thing, managing the general hill, climbing from

0:19:34.090 --> 0:19:36.969
<v S1>current state to ideal state for anything you're trying to accomplish.

0:19:37.090 --> 0:19:39.770
<v S1>So this is what I want to say, just responding

0:19:39.810 --> 0:19:42.889
<v S1>to Theo here again. I think me and Theo and

0:19:42.889 --> 0:19:45.490
<v S1>Matt also are going to agree about this, I think,

0:19:45.490 --> 0:19:47.449
<v S1>in the future. And I could be wrong about certain

0:19:47.449 --> 0:19:50.689
<v S1>pieces about this as well, right? I've incorporated tons of stuff,

0:19:50.689 --> 0:19:53.650
<v S1>for example from Wayfinder or from Grill me or some

0:19:53.649 --> 0:19:56.290
<v S1>of his other skills. I've incorporated tons of stuff into

0:19:56.290 --> 0:19:58.929
<v S1>life OS from Theo, from all the videos I've watched.

0:19:59.330 --> 0:20:01.490
<v S1>Mad respect for both of them. I just think that

0:20:01.490 --> 0:20:06.050
<v S1>this concept is so fundamental and first principles based, that

0:20:06.050 --> 0:20:07.809
<v S1>I think everyone's going to be moving in this direction.

0:20:07.810 --> 0:20:09.490
<v S1>And if you like it, if you try it, if

0:20:09.490 --> 0:20:11.730
<v S1>you hate it, if you absolutely love it, either way,

0:20:11.730 --> 0:20:13.609
<v S1>just comment and we'll see you in the next one.