WEBVTT

1
00:00:00.000 --> 00:00:01.960
Okay, awesome.

2
00:00:01.960 --> 00:00:07.280
Today we are talking about how to build an AI-friendly PRD.

3
00:00:07.280 --> 00:00:08.600
So first off, what is a PRD?

4
00:00:08.600 --> 00:00:10.900
It's a project requirement document.

5
00:00:10.900 --> 00:00:12.740
These have been around forever.

6
00:00:12.740 --> 00:00:14.640
It's nothing really new.

7
00:00:14.640 --> 00:00:19.020
But what's really interesting now is that with the power of AI, we can create these

8
00:00:19.020 --> 00:00:21.460
obviously a lot faster and be a lot more accurate.

9
00:00:21.460 --> 00:00:27.000
And it's one of the cool things that we can do as a team because we have essentially taken

10
00:00:27.000 --> 00:00:32.560
flip the structure a little bit now, as far as like previously, we used to spend 80% of

11
00:00:32.560 --> 00:00:37.620
a project just writing code and actually putting things, building the thing.

12
00:00:37.620 --> 00:00:42.840
And maybe there's 10, 15, 20% of the project is like meeting with clients and shaping and

13
00:00:42.840 --> 00:00:46.240
getting clear and then just going and doing majority of the work.

14
00:00:46.240 --> 00:00:51.200
So what we found using the framing, shaping process that we've been diving into with Ryan

15
00:00:51.200 --> 00:00:56.800
is that you can actually get a lot more work done in that kind of uphill piece of the framing

16
00:00:56.800 --> 00:01:01.200
and the shaping was really about half the project, at least on that.

17
00:01:01.200 --> 00:01:04.480
And then you can use AI kind of on the downhill of the project.

18
00:01:04.480 --> 00:01:05.480
Okay.

19
00:01:05.480 --> 00:01:09.560
I think I've shared this before, but this idea of we've talked about framing a little

20
00:01:09.560 --> 00:01:11.960
bit, there's some shaping, which we'll get into more of that.

21
00:01:11.960 --> 00:01:14.600
There's a lot of resources from Ryan on that.

22
00:01:14.600 --> 00:01:20.880
And what we essentially are working to do is to have this continual process of going

23
00:01:20.880 --> 00:01:24.600
into framing, shaping, building, and then the shipping.

24
00:01:24.600 --> 00:01:28.040
And I think about it like this, like the project really is, we start with the framing

25
00:01:28.040 --> 00:01:30.880
of kind of what is this thing even going to be and shaping.

26
00:01:30.880 --> 00:01:34.040
And this is, it's not necessarily the bulk of the hours or the work.

27
00:01:34.040 --> 00:01:38.640
It's just the, all the unknowns it's in shape up, they call it the kind of the uphill piece

28
00:01:38.640 --> 00:01:39.640
of the project.

29
00:01:39.640 --> 00:01:43.840
It's just, you don't really know where that top of the hill starts to peak.

30
00:01:43.840 --> 00:01:46.720
And then it's all after that, it gets really easy.

31
00:01:46.720 --> 00:01:51.160
And this can be helpful to, to continue to frame and shape and prototype.

32
00:01:51.160 --> 00:01:56.000
To me, this is doing quick little spike projects of, Oh, we need to actually go in and make

33
00:01:56.000 --> 00:02:00.360
a little thing or test this AI OCR piece we were doing yesterday.

34
00:02:00.360 --> 00:02:03.360
And just iterating like test, it's all happening as uphill things.

35
00:02:03.360 --> 00:02:05.200
We just don't know what we don't know.

36
00:02:05.200 --> 00:02:08.639
So you just pick on a thread and you keep pulling on that thread and okay, where does

37
00:02:08.639 --> 00:02:09.639
this going to go?

38
00:02:09.639 --> 00:02:10.840
How do we figure this out?

39
00:02:10.840 --> 00:02:15.720
And then once you get clarity, we'll do some more training on kind of more of the shaping

40
00:02:15.720 --> 00:02:16.720
piece.

41
00:02:16.720 --> 00:02:19.640
I think there's some mystery still there, but framing we talked about in a previous

42
00:02:19.640 --> 00:02:20.760
video.

43
00:02:20.760 --> 00:02:24.000
And once you get this clarity, that's where we want to create this kind of where this

44
00:02:24.000 --> 00:02:25.000
flag is.

45
00:02:25.000 --> 00:02:26.000
This is where we're going to create this.

46
00:02:26.000 --> 00:02:29.160
We're called the PRD that's going to then go ahead and help build it.

47
00:02:29.160 --> 00:02:33.400
And we can, at this point, we're starting to take the project, put it into a task grid.

48
00:02:33.400 --> 00:02:37.040
We're taking the project, we're putting it into the AI friendly PRD, and then we're just

49
00:02:37.040 --> 00:02:39.600
going and executing on that project.

50
00:02:39.600 --> 00:02:44.000
And the way that I like to think about this, I'll start here at the top, get back to my

51
00:02:44.000 --> 00:02:48.440
notes so we don't get too off track, but it essentially creates this like single source

52
00:02:48.440 --> 00:02:49.480
of truth for us.

53
00:02:50.320 --> 00:02:54.240
Once we've got everything and it's clear, then we just put it in to this document.

54
00:02:54.240 --> 00:02:57.840
We can go execute on this, this document, what it's going to look like as an actual

55
00:02:57.840 --> 00:03:04.120
file in cursor, it's a dot MD markdown file that you'll have all this very specific sections

56
00:03:04.120 --> 00:03:05.120
in there.

57
00:03:05.120 --> 00:03:06.620
You'll have different tasks set up.

58
00:03:06.620 --> 00:03:11.120
And then we have this way for the AI to track what's worked on and what's not worked on.

59
00:03:11.120 --> 00:03:14.840
And I mentioned this a little bit, but why we're working on this is because it helps

60
00:03:14.840 --> 00:03:19.040
us create very precise executed things for the AI.

61
00:03:19.600 --> 00:03:23.200
So AI is your junior dev that's going to run around and go do exactly what you say.

62
00:03:23.200 --> 00:03:27.960
But when we give it very vague things, it just starts taking a shotgun approach, just

63
00:03:27.960 --> 00:03:29.720
like randomly changing files.

64
00:03:29.720 --> 00:03:34.280
And that's where you're like, oh, AI is, this is the sort of epitome of a vibe code movement,

65
00:03:34.280 --> 00:03:35.280
right?

66
00:03:35.280 --> 00:03:36.440
We're not vibe coders here.

67
00:03:36.440 --> 00:03:41.760
And we, the anti-vibe coding trend, I haven't come up with a name for it yet, but we'll

68
00:03:41.760 --> 00:03:43.240
come up with something.

69
00:03:43.240 --> 00:03:46.620
And the idea is that you are going to get extremely precise.

70
00:03:46.620 --> 00:03:50.500
You get extremely clear with the client, what the requirements are and what the limitations

71
00:03:50.500 --> 00:03:51.820
are for this project.

72
00:03:51.820 --> 00:03:55.060
And then when you've done that, and we have a very clear plan of attack, and there's not

73
00:03:55.060 --> 00:03:56.300
a lot of unknowns there.

74
00:03:56.300 --> 00:03:58.380
We've ruled out anything that's, oh, I don't, this is fuzzy.

75
00:03:58.380 --> 00:04:01.020
I don't know how this little component is actually going to work.

76
00:04:01.020 --> 00:04:02.020
We've really ruled that out.

77
00:04:02.020 --> 00:04:04.980
We've already figured out some solutions and decisions.

78
00:04:04.980 --> 00:04:11.420
Put this PRD together and you can go have AI build the first kind of version 0.1 of

79
00:04:11.420 --> 00:04:13.100
this new feature.

80
00:04:13.340 --> 00:04:15.060
So that's kind of how we're thinking about it.

81
00:04:15.060 --> 00:04:20.380
And it continues to kind of align everybody, of course, with the client, the project manager,

82
00:04:20.380 --> 00:04:24.220
you as the developer, and then of course, our best part of the team is the AI.

83
00:04:24.220 --> 00:04:26.900
So they're really part of the team that is working.

84
00:04:26.900 --> 00:04:32.180
And it just helps us get something out quicker that we can see and play with and experience,

85
00:04:32.180 --> 00:04:36.140
because that first version that we built may not have accounted for something.

86
00:04:36.140 --> 00:04:38.200
And so we can easily go back and then iterate on that.

87
00:04:38.200 --> 00:04:42.180
So getting that first thing out the door is really helpful.

88
00:04:42.180 --> 00:04:43.180
And then clients can see it.

89
00:04:43.180 --> 00:04:45.140
Everybody can react to it once it's real.

90
00:04:45.140 --> 00:04:50.140
It's hard to react to something when it's in a breadboard form or just in a prototype.

91
00:04:50.140 --> 00:04:54.620
And then the way I think about this is like I've said this before, like the humans are

92
00:04:54.620 --> 00:04:55.780
us.

93
00:04:55.780 --> 00:04:58.100
We are going to own client communication.

94
00:04:58.100 --> 00:04:59.540
We're the experts at.

95
00:05:00.000 --> 00:05:01.900
finding the root cause and digging in.

96
00:05:01.900 --> 00:05:04.680
Like it's this very, almost like you're going to the founder

97
00:05:04.680 --> 00:05:06.540
therapy, I think is what Luchin called it.

98
00:05:06.660 --> 00:05:09.000
You're just essentially interviewing them, getting questions.

99
00:05:09.000 --> 00:05:10.200
What's, why is this a problem?

100
00:05:10.200 --> 00:05:11.140
Why do you feel this way?

101
00:05:11.200 --> 00:05:12.880
What friction is it causing?

102
00:05:12.880 --> 00:05:15.960
Why now is we're trying to get deep into like their problem and

103
00:05:15.960 --> 00:05:19.460
experience what they're trying to experience so we can be as helpful as possible.

104
00:05:20.160 --> 00:05:24.200
And then with that, we are taking that and then we're going to use AI

105
00:05:24.200 --> 00:05:25.900
on what it's good at, it's just the coding.

106
00:05:26.240 --> 00:05:29.740
But where we're not doing is getting this kind of vibe coders.

107
00:05:29.740 --> 00:05:32.660
Cause vibe coders generally is people just like sitting down and

108
00:05:32.660 --> 00:05:35.620
just noodling around, like, I think I'm going to add a live streaming

109
00:05:35.620 --> 00:05:37.780
to my website and just put in a prompt.

110
00:05:37.780 --> 00:05:41.340
And off it goes and just let it YOLO settings on cursor where

111
00:05:41.340 --> 00:05:43.540
just everything just is done for you.

112
00:05:43.720 --> 00:05:47.020
You may make very few decisions and then outcomes like a cool app.

113
00:05:47.040 --> 00:05:48.300
And then there's this whole thing about it.

114
00:05:48.300 --> 00:05:49.480
So this is not what we're doing there.

115
00:05:49.480 --> 00:05:50.580
We're getting very specific.

116
00:05:50.580 --> 00:05:55.460
Cause we're working in very high level business operation type tools

117
00:05:55.480 --> 00:05:57.100
where these things need to be precise.

118
00:05:57.100 --> 00:06:01.500
We can't just make a change and then just accidentally makes other

119
00:06:01.500 --> 00:06:03.020
changes in the app and breaks things.

120
00:06:03.180 --> 00:06:04.140
We want to be really precise.

121
00:06:04.140 --> 00:06:05.940
That's where the quality is going to come in.

122
00:06:05.940 --> 00:06:10.360
And that's where if we have someone who is an expert, they're going to oversee it

123
00:06:10.380 --> 00:06:12.460
and they're going to essentially be the senior dev.

124
00:06:12.740 --> 00:06:18.020
So I said, if you're a dev, any dev leveraging AI, you're now senior dev,

125
00:06:18.040 --> 00:06:21.820
right, you're now managing these junior devs and you're going to check on their work.

126
00:06:21.840 --> 00:06:25.320
You're not going to just let code go through the get shipped and you're

127
00:06:25.320 --> 00:06:27.960
going to be really picky about it because you're trying to train them up and you

128
00:06:27.960 --> 00:06:31.520
care about the quality of what's going out, but it allows us to go a lot faster

129
00:06:31.520 --> 00:06:36.600
obviously, and get the grunt work out of the way, but we're not spending days

130
00:06:36.720 --> 00:06:39.560
doing something where you spend a few hours building something and then

131
00:06:39.560 --> 00:06:42.720
spend more of that time helping the client understand how to use it,

132
00:06:42.760 --> 00:06:45.920
optimizing it, tweaking it and getting it ready to ship.

133
00:06:46.400 --> 00:06:50.840
So we're essentially again, helping create really crisp specific tasks.

134
00:06:50.880 --> 00:06:54.680
This is not nothing vague about this, keeping it concrete, reviewing all the

135
00:06:54.880 --> 00:06:59.720
commits, seeing what it is adding, and just if it gets stuck, obviously keeping it moving.

136
00:07:00.120 --> 00:07:03.040
We have, I've taken our shape of AI.

137
00:07:03.320 --> 00:07:06.280
There's now the way to create an AI PRD.

138
00:07:06.280 --> 00:07:09.000
So what I was going to do for you guys is do a little example here.

139
00:07:09.240 --> 00:07:12.600
First off, what it does is it essentially you give it a bunch of inputs.

140
00:07:12.600 --> 00:07:15.740
You can give it a task grid, you could give it the framing doc, you could give

141
00:07:15.740 --> 00:07:19.840
it a number of different pieces, but you want to give it as much context as possible.

142
00:07:20.240 --> 00:07:25.920
And then the GBT will return a little framing doc at the top to help give the AI

143
00:07:25.920 --> 00:07:28.840
some context and then different sections and tasks.

144
00:07:28.840 --> 00:07:32.920
And so the important thing here is if you use the shape of GBT, it's a, it's,

145
00:07:33.280 --> 00:07:35.960
it's version one of your PRD.

146
00:07:35.960 --> 00:07:38.680
It's not the thing you're going to go and then I'll execute on.

147
00:07:38.960 --> 00:07:41.680
So I'm going to actually do this for you guys for a project that

148
00:07:41.680 --> 00:07:42.720
Eluchin and I shaped up.

149
00:07:42.720 --> 00:07:45.120
So this migrating web app from Flutter to JS.

150
00:07:45.160 --> 00:07:48.340
I'm probably not going to keep what we do in this demo, but it'll help prove the

151
00:07:48.340 --> 00:07:52.840
point because what's nice about this is already chopped the project into some

152
00:07:52.840 --> 00:07:56.660
sections here, and then from here, we're going to move it into cursor.

153
00:07:56.660 --> 00:08:00.540
So what I'm going to do just really quick is grab this.

154
00:08:00.980 --> 00:08:03.580
I'm just going to screenshot it and I'm just going to paste it in here.

155
00:08:03.580 --> 00:08:10.180
And so we want to say something like write a AI, use that phrase.

156
00:08:10.220 --> 00:08:11.500
It's going to know what to do with that.

157
00:08:11.780 --> 00:08:14.460
And I'm also going to grab from FigJam here.

158
00:08:14.460 --> 00:08:19.100
This is not very precise because we didn't, at the end of it, a very long work session.

159
00:08:19.100 --> 00:08:21.060
We came up with very clear concrete tasks.

160
00:08:21.300 --> 00:08:24.380
We actually didn't go back and do the problem statement, but I think I grabbed

161
00:08:25.180 --> 00:08:27.820
this one to give some like general context.

162
00:08:27.820 --> 00:08:31.060
So my windows are, let me just make this bigger because it's

163
00:08:31.260 --> 00:08:32.340
screenshots not going to be.

164
00:08:33.380 --> 00:08:37.020
So I'm just going to screenshot FigJam like that and jump in here.

165
00:08:37.020 --> 00:08:39.059
I'm just going to get both of those things as context.

166
00:08:39.380 --> 00:08:43.340
I'm using the, so what you can pick shape up AI, and then you can pick what model.

167
00:08:43.980 --> 00:08:45.860
I've seen some really good examples with O3.

168
00:08:45.860 --> 00:08:49.300
It does take a minute, a bit longer, but, or O3 pro.

169
00:08:49.300 --> 00:08:53.020
So these are, let's go ahead and try that out and see how it goes here.

170
00:08:53.140 --> 00:08:55.660
In the meantime, I will go ahead and get cursor up.

171
00:08:55.900 --> 00:08:57.940
I'm going to kind of show you guys how we would put this in.

172
00:08:58.500 --> 00:09:03.020
And there's the important thing here is that we are again, getting a draft.

173
00:09:03.180 --> 00:09:06.540
This is not what we're going to go through and execute on at the end.

174
00:09:06.860 --> 00:09:10.260
We need to, cause what does shape up AI not have right now?

175
00:09:10.260 --> 00:09:12.620
It doesn't have the context of the entire code base.

176
00:09:12.900 --> 00:09:16.580
So after we're done with this, I'm going to put it into cursor.

177
00:09:16.620 --> 00:09:18.020
I'm going to take that shape deficit.

178
00:09:18.020 --> 00:09:18.260
Okay.

179
00:09:18.260 --> 00:09:22.660
Now update this now that you have like context of the code base.

180
00:09:22.940 --> 00:09:24.620
And I want to see really specific things.

181
00:09:24.620 --> 00:09:28.860
Like I want to see that, Oh, it's going to change this directory.

182
00:09:28.860 --> 00:09:33.380
It's going to add these files because this is where you see AI go pretty wonky.

183
00:09:33.380 --> 00:09:38.900
Sometimes like it just all of a sudden decides to start creating like additional

184
00:09:38.900 --> 00:09:41.860
directories and a new routes file that doesn't need to be there.

185
00:09:41.860 --> 00:09:42.820
There's already a routes file.

186
00:09:42.820 --> 00:09:44.340
Just need to add a new route inside.

187
00:09:44.340 --> 00:09:47.660
Like it gets very redundant fast because it's a little bit dumb.

188
00:09:48.180 --> 00:09:49.740
So let's see.

189
00:09:49.740 --> 00:09:51.300
It's pulled all these into tasks.

190
00:09:51.340 --> 00:09:52.140
Let's see what it did.

191
00:09:52.860 --> 00:09:56.780
And again, this is not, so I'm going to leave the bottom part off and it

192
00:09:56.780 --> 00:09:58.940
is going to generate a, an MD file.

193
00:09:58.940 --> 00:10:00.060
So you can actually download.

194
00:10:00.000 --> 00:10:03.640
This, um, as an MD file right here, and you can't see mine.

195
00:10:03.640 --> 00:10:07.200
I can, I'm gonna go to the repo and I'm going to go, you guys can't see this,

196
00:10:07.200 --> 00:10:11.260
but in tribe, I have a directory called instructions and I'm just going to call

197
00:10:11.260 --> 00:10:20.700
it web to JS, CMS dot MD, and I'm going to flip over now to cursor and, and

198
00:10:20.700 --> 00:10:23.040
then I'm going to make this much, much bigger cause you guys aren't going to.

199
00:10:23.080 --> 00:10:23.580
There we go.

200
00:10:24.040 --> 00:10:24.540
Cool.

201
00:10:25.340 --> 00:10:30.700
So in cursor, we now have this like web to CMS here.

202
00:10:30.860 --> 00:10:33.980
I'm going to make this, let's get some room here.

203
00:10:34.740 --> 00:10:35.240
Cool.

204
00:10:35.260 --> 00:10:36.700
Same doc and everything here.

205
00:10:36.700 --> 00:10:40.140
So I'm going to go in now and say, this is for tribes.

206
00:10:40.140 --> 00:10:40.640
So it's easy.

207
00:10:40.640 --> 00:10:44.620
We can say update this doc and you can leave it in agent mode because

208
00:10:44.620 --> 00:10:46.060
we do want it to edit this.

209
00:10:46.100 --> 00:10:49.260
There is an ask mode here where you can ask it questions about the code base,

210
00:10:49.260 --> 00:10:50.840
but we do actually want it to edit files.

211
00:10:50.840 --> 00:10:56.440
So I'm going to say update this document now that you have context with, and you

212
00:10:56.440 --> 00:10:58.000
can say the code base like that.

213
00:10:58.460 --> 00:11:01.400
And we have this tribe overview MD file.

214
00:11:01.480 --> 00:11:07.040
It's got a bunch of information, make no code changes, only update PRD.

215
00:11:08.040 --> 00:11:10.280
Everything's on max here and we'll just fire that off.

216
00:11:10.600 --> 00:11:16.020
So what's cool about cursor now is you actually can queue up other

217
00:11:16.020 --> 00:11:17.680
messages while you're working.

218
00:11:17.680 --> 00:11:22.200
So you can go ahead and say, is there anything else we can do to optimize?

219
00:11:22.200 --> 00:11:23.000
These are general things.

220
00:11:23.000 --> 00:11:24.320
And you can go ahead and queue that up.

221
00:11:24.600 --> 00:11:26.360
And it just sits in the task window down here.

222
00:11:26.360 --> 00:11:29.440
I don't know if you guys have played with this and you can fire that when it's

223
00:11:29.440 --> 00:11:33.120
ready, you can have messages queued up or I can delete them if needed.

224
00:11:33.440 --> 00:11:36.240
So I'm going to go through, let me just, there we go.

225
00:11:36.280 --> 00:11:39.760
Clean that up and shrink this down a bit.

226
00:11:40.440 --> 00:11:42.680
This is the tiniest cursor window I've ever used.

227
00:11:42.680 --> 00:11:46.400
Cause I normally on a much bigger screen, but, and then what we're also doing here

228
00:11:46.400 --> 00:11:49.640
is we're wanting to track like the difference of what is it identifying?

229
00:11:49.640 --> 00:11:53.000
Because one thing that it's, we have in here, which I already knows a problem

230
00:11:53.000 --> 00:11:55.600
is we're saying a bunch of stuff about this.

231
00:11:55.600 --> 00:11:57.200
We have to build a things, notifications.

232
00:11:57.360 --> 00:11:59.040
So it doesn't know a lot of things.

233
00:11:59.040 --> 00:12:01.960
This is probably where it's going to, this demo is going to break down

234
00:12:01.960 --> 00:12:06.000
really fast because half the stuff has to be in tribe social mobile app.

235
00:12:06.280 --> 00:12:09.000
And some of it's going to be in the tribe social JavaScript repo.

236
00:12:09.000 --> 00:12:10.480
So there's two different repos going on.

237
00:12:10.920 --> 00:12:15.080
And I want to see, actually be curious to see how much it actually catches

238
00:12:15.080 --> 00:12:18.760
that, because I think we said, this is just simple, like migrating the site.

239
00:12:18.760 --> 00:12:19.760
So it can't do that.

240
00:12:19.800 --> 00:12:21.440
Obviously that's nothing it can do for that.

241
00:12:21.960 --> 00:12:24.200
And now it's ready to come back with its first batch of edits.

242
00:12:24.200 --> 00:12:24.760
Let's see.

243
00:12:25.480 --> 00:12:26.840
So we would read through this.

244
00:12:26.840 --> 00:12:29.840
So this is, I'm not, I don't want to rush this in a demo, but I want to just

245
00:12:29.840 --> 00:12:31.480
give you guys the workflow really quick.

246
00:12:31.800 --> 00:12:34.200
So what I'm going to do is if I was really doing this, I would literally

247
00:12:34.200 --> 00:12:35.240
say at the top here, okay.

248
00:12:35.240 --> 00:12:38.400
And read it word for word from top to bottom, be like, Oh, that's wrong.

249
00:12:38.440 --> 00:12:39.280
Or that's a mistake.

250
00:12:39.280 --> 00:12:43.200
Or it's, and then I could accept those changes and walk, work my way through it.

251
00:12:43.640 --> 00:12:47.080
The goal is not to be like, this is everything in this document is

252
00:12:47.080 --> 00:12:48.360
what it's going to go execute on.

253
00:12:48.360 --> 00:12:52.560
So your job, you're like, should be really focused on how do I make this

254
00:12:52.680 --> 00:12:56.960
absolutely as precise as possible and give it the most context possible.

255
00:12:57.040 --> 00:12:58.800
If I keep going down, let me just see.

256
00:12:58.960 --> 00:13:01.680
And I think, no, it's got this as a three week project.

257
00:13:01.680 --> 00:13:01.840
Okay.

258
00:13:01.840 --> 00:13:02.400
That's fine.

259
00:13:02.880 --> 00:13:03.640
I don't really mind.

260
00:13:04.160 --> 00:13:07.400
I like to think of like when it says a week, I like to think of it as an hour.

261
00:13:07.800 --> 00:13:09.080
So we're like the, what is it?

262
00:13:09.080 --> 00:13:10.240
An interstellar, right?

263
00:13:10.240 --> 00:13:13.960
Where the days take hours, or that's if you guys are familiar with that,

264
00:13:13.960 --> 00:13:15.160
maybe that's what it feels like.

265
00:13:15.400 --> 00:13:19.400
So if you can get through a, an hour here, it'd probably be like at least a

266
00:13:19.400 --> 00:13:21.520
day or at least for a week of what it thinks.

267
00:13:21.600 --> 00:13:25.120
So I'm gonna keep going through it's, is it working on it still?

268
00:13:25.200 --> 00:13:26.160
Cause it's very jumpy.

269
00:13:26.720 --> 00:13:30.240
So we can go through each of these and I can read like what's its approach.

270
00:13:30.280 --> 00:13:32.000
This is, there's a lot of pieces here.

271
00:13:32.400 --> 00:13:34.840
And one thing is it's already a little bit.

272
00:13:35.400 --> 00:13:37.440
So I would just say number each section.

273
00:13:37.440 --> 00:13:40.160
So it's easier to find.

274
00:13:40.360 --> 00:13:43.280
And so we'll continue to iterate on this and build this document.

275
00:13:43.280 --> 00:13:44.160
So this should take time.

276
00:13:44.160 --> 00:13:46.640
Like this, I don't want to rush this, but I wanted to show you the workflow as far

277
00:13:46.640 --> 00:13:50.360
as plugging it into cursor and then having it totally go through and

278
00:13:50.360 --> 00:13:52.480
update everything to make it better.

279
00:13:52.480 --> 00:13:56.160
And the other thing I will do is I try to keep it around two to 300 lines.

280
00:13:56.160 --> 00:13:58.040
This doesn't need to be a thousand lines.

281
00:13:58.040 --> 00:14:02.080
I think if you get into something where it's much, much larger, it just makes it

282
00:14:02.080 --> 00:14:04.120
very complicated to go and find things.

283
00:14:04.440 --> 00:14:06.160
Let me take this preview off here.

284
00:14:06.680 --> 00:14:09.040
And we've got, let's see here.

285
00:14:09.080 --> 00:14:12.240
So we've got this, I'm just coming through.

286
00:14:13.400 --> 00:14:13.880
Okay, cool.

287
00:14:14.040 --> 00:14:17.720
At this point you would finish it and then get this where you're happy with it.

288
00:14:17.720 --> 00:14:18.280
Get it approved.

289
00:14:18.320 --> 00:14:20.440
I would create this on a new branch.

290
00:14:20.480 --> 00:14:25.080
And again, this whole thing with AI stuff, of course, is to be very, to hold it loosely.

291
00:14:25.080 --> 00:14:27.640
So I'm going to build this whole product like PRD.

292
00:14:27.880 --> 00:14:30.960
I'm going to fire it away on a brand new branch and just let it go and do all

293
00:14:30.960 --> 00:14:32.520
the things at once and test it.

294
00:14:32.880 --> 00:14:36.080
And then I may take the whole thing, just reset the branch and start it totally.

295
00:14:36.480 --> 00:14:40.920
If I'm like, oh, that PRD didn't work, throw the whole thing out, edit it, clean,

296
00:14:40.960 --> 00:14:44.840
reset the database, quickly get it back to zero and then just build it again.

297
00:14:44.880 --> 00:14:48.560
Cause it's not like we have to, oh, we have to save all this work that it's done now.

298
00:14:48.920 --> 00:14:51.680
If you, oh, it ended up creating this whole other thing and I didn't need that.

299
00:14:51.680 --> 00:14:55.080
And it's over if it's too much, like just reset the branch or start a new

300
00:14:55.080 --> 00:14:59.440
branch if you don't want to lose what you've worked on and just iterate it again.

301
00:14:59.800 --> 00:15:00.120
So.

302
00:15:00.000 --> 00:15:04.080
This is where, once you finish this, I would start a brand new session.

303
00:15:04.140 --> 00:15:08.200
And every time you start one of these sections, so each section will

304
00:15:08.200 --> 00:15:09.940
have, let's say three to five tasks.

305
00:15:10.280 --> 00:15:13.480
Each section at least should be on its own, own tasks.

306
00:15:13.480 --> 00:15:16.400
So your prompts would be something like, let's build this.

307
00:15:16.480 --> 00:15:18.880
And it should know, based on the instructions here, that it's

308
00:15:18.880 --> 00:15:22.620
going to just do one section, each of the tasks, update those.

309
00:15:22.620 --> 00:15:24.460
And it's going to stop at that point.

310
00:15:24.460 --> 00:15:26.500
And when you're done with that, you can save it.

311
00:15:26.500 --> 00:15:28.440
You can check the code just for that one section.

312
00:15:28.440 --> 00:15:30.840
Hopefully it's broken into little sections here.

313
00:15:30.840 --> 00:15:33.360
So this one was like, do a code split.

314
00:15:33.360 --> 00:15:35.840
So we have to create this and this, we have to do this.

315
00:15:35.840 --> 00:15:39.660
It's a pretty easy, because this is using our framework.

316
00:15:39.900 --> 00:15:41.300
Each thing starts with a verb.

317
00:15:41.300 --> 00:15:44.860
It's very clear that it's going to deploy this to all nodes and confirm

318
00:15:44.860 --> 00:15:46.120
that everything makes functional.

319
00:15:46.120 --> 00:15:48.140
So if we want that, we don't have to do that.

320
00:15:48.140 --> 00:15:49.260
I may have pulled this out.

321
00:15:49.260 --> 00:15:52.820
We don't need to deploy all this, you know, right out the gate, but we could,

322
00:15:52.820 --> 00:15:56.060
this is a shippable piece if they want it to, and then we'd start this

323
00:15:56.060 --> 00:15:57.880
kind of split thing building out.

324
00:15:57.880 --> 00:16:01.900
And also what's helpful is if I'm doing this as me right now, but Lucian and I

325
00:16:01.900 --> 00:16:06.340
were working on this together in great detail, so if we had, if we continue

326
00:16:06.340 --> 00:16:09.380
this together, we would have a lot of opinions on these different tasks.

327
00:16:09.380 --> 00:16:12.160
And we can say, okay, yeah, let's strike, strike that, change

328
00:16:12.160 --> 00:16:13.940
it, move things around, whatever.

329
00:16:14.180 --> 00:16:16.960
And so you're building it, the plan for it and getting really specific.

330
00:16:16.960 --> 00:16:19.660
All this stuff that we're doing is getting, is clarity and

331
00:16:19.660 --> 00:16:21.020
just being extremely specific.

332
00:16:21.020 --> 00:16:21.740
That's what we're doing.

333
00:16:21.740 --> 00:16:25.060
We can't have things that are vague because you're going to tell

334
00:16:25.060 --> 00:16:26.480
it to go execute on all these tasks.

335
00:16:26.480 --> 00:16:28.640
So just make sure that it's a, it is a task you need.

336
00:16:28.640 --> 00:16:32.060
And if not delete it, like just, if you don't think it's, if it's over the

337
00:16:32.060 --> 00:16:36.020
top, sure, do we need to optimize the Firebase queries to achieve less

338
00:16:36.020 --> 00:16:37.160
than a hundred milliseconds late?

339
00:16:37.180 --> 00:16:38.780
Maybe, I don't know.

340
00:16:38.820 --> 00:16:41.840
And that seems like a little bit over the top, right out the gate.

341
00:16:42.340 --> 00:16:44.740
And anyway, we'll go through this finishes and you would basically

342
00:16:44.740 --> 00:16:46.020
go through section by section.

343
00:16:46.360 --> 00:16:50.740
I would keep it all separated if you can in, in that, in the branch.

344
00:16:51.140 --> 00:16:53.020
And then let's jump back to this.

345
00:16:54.420 --> 00:16:55.880
And here we go.

346
00:16:56.320 --> 00:16:56.820
Oops.

347
00:16:59.980 --> 00:17:00.480
Cool.

348
00:17:01.040 --> 00:17:03.860
And you could iterate here, but to me, this is gets like a nice

349
00:17:03.860 --> 00:17:06.220
first draft of the template going.

350
00:17:06.220 --> 00:17:07.280
So that's how we would go through that.

351
00:17:07.280 --> 00:17:11.980
And then I, we did to the demo and then I just said, yeah, go through it slowly.

352
00:17:12.020 --> 00:17:15.859
Best, best practices, new cursor session per section.

353
00:17:16.359 --> 00:17:19.400
And you'll continue that PRD and it should be like a live

354
00:17:19.400 --> 00:17:20.660
PRD that updates the status.

355
00:17:20.660 --> 00:17:23.420
So you just should be like, okay, now do section two.

356
00:17:23.420 --> 00:17:23.619
Okay.

357
00:17:23.619 --> 00:17:26.599
Now do section three and you're committing each thing so you can

358
00:17:26.599 --> 00:17:30.000
roll back because inevitably it may get one might be fine.

359
00:17:30.000 --> 00:17:30.880
Two might be fine.

360
00:17:30.880 --> 00:17:34.000
It gets into three and then it just, you know, crashes or maybe the

361
00:17:34.000 --> 00:17:37.260
app hits a bunch of bugs or something.

362
00:17:37.480 --> 00:17:40.760
You want to make sure that I like to make sure that the app still is working.

363
00:17:40.760 --> 00:17:43.800
So I'll have it running locally and I'll see what it's doing.

364
00:17:43.840 --> 00:17:44.920
Does the thing even load?

365
00:17:44.940 --> 00:17:46.540
Are we hitting compiling errors?

366
00:17:46.540 --> 00:17:49.240
What what's going on so that we're not like committing, okay.

367
00:17:49.320 --> 00:17:52.300
Section three's in here, but it totally broke everything.

368
00:17:52.360 --> 00:17:55.720
Cause then if you do that and then now four starts to get built, you get further

369
00:17:55.720 --> 00:17:58.640
and further away from like a working version, so that's how we'll just

370
00:17:58.640 --> 00:18:02.640
make sure that it passes tests and keep, keep committing there to that branch.

371
00:18:02.640 --> 00:18:04.040
And then it said that dedicate branch.

372
00:18:04.040 --> 00:18:05.320
So that's pretty much it.

373
00:18:05.360 --> 00:18:06.220
I wanted to cover it.

374
00:18:06.220 --> 00:18:08.280
It's pretty, I went through it very quickly.

375
00:18:08.280 --> 00:18:10.960
The best thing is going to be for you guys to go through it in

376
00:18:10.960 --> 00:18:13.060
detail yourselves and just test it.

377
00:18:13.220 --> 00:18:17.380
You will build a little, a level of trust with the AI on this

378
00:18:17.760 --> 00:18:19.200
and it will get better and better.

379
00:18:19.220 --> 00:18:22.340
I do want to show one little bonus thing, which is, which I've been

380
00:18:22.340 --> 00:18:24.700
experimenting with, which is cloud code.

381
00:18:25.160 --> 00:18:30.280
I don't know if you guys are using this at all, but cloud code, you can run it

382
00:18:30.280 --> 00:18:32.140
in any editor and you install it here.

383
00:18:32.140 --> 00:18:35.880
So you can get you guys a cloud code pro account if you want, but you just

384
00:18:35.880 --> 00:18:37.500
start kick off a session like this.

385
00:18:37.940 --> 00:18:40.440
And we can say, yes, we trust that file.

386
00:18:40.500 --> 00:18:42.900
Now here's where we can, it basically runs in the terminal.

387
00:18:42.900 --> 00:18:46.460
So if you're, you love doing things in the terminal, this will be for you.

388
00:18:47.000 --> 00:18:50.280
And I can just link to this and say at, what did we call this?

389
00:18:50.280 --> 00:18:56.300
Web two here are my requirements.

390
00:18:56.520 --> 00:19:00.080
And then just see now what this will do, what I like about it.

391
00:19:00.080 --> 00:19:02.240
I just want to give you guys a super quick high-level demo.

392
00:19:02.640 --> 00:19:03.340
Ah, perfect.

393
00:19:03.340 --> 00:19:04.880
It's already overloading the API.

394
00:19:04.960 --> 00:19:05.880
Fantastic.

395
00:19:06.100 --> 00:19:07.940
So may have to be on a pro account.

396
00:19:07.940 --> 00:19:09.780
I noticed the cloud was actually down this morning.

397
00:19:09.840 --> 00:19:13.380
Potentially that's what it is, but I did this the other day for another project.

398
00:19:13.380 --> 00:19:17.360
And it does this, it essentially creates like a little to-do list for yourself.

399
00:19:17.840 --> 00:19:20.940
And it starts to actually manage the project for you.

400
00:19:21.320 --> 00:19:24.320
And then you do, you actually choose each task that you want to do.

401
00:19:24.320 --> 00:19:25.860
So it's going to do this one.

402
00:19:25.880 --> 00:19:28.560
It's going to be like, Hey, I'm, I want to change these three lines.

403
00:19:28.560 --> 00:19:30.660
And you look at the three lines and you're like, yeah, that's good.

404
00:19:30.680 --> 00:19:31.440
Make that change.

405
00:19:31.680 --> 00:19:32.880
And it works, works, works.

406
00:19:32.880 --> 00:19:33.300
And it's cool.

407
00:19:33.300 --> 00:19:35.660
I want to make these five changes, or I want to add this new file

408
00:19:35.660 --> 00:19:36.980
and you can step it through one.

409
00:19:36.980 --> 00:19:39.220
It's a little bit of a more of a simple process.

410
00:19:39.800 --> 00:19:42.360
So this will, this is actually going to run ahead and start doing this.

411
00:19:42.360 --> 00:19:46.660
I may not, this may not be the way to do this, but CloudCode is an interesting

412
00:19:46.660 --> 00:19:52.440
workflow and you'd think it would be the same as for Sonnet Max here.

413
00:19:52.660 --> 00:19:55.180
It's actually quite a different workflow entirely.

414
00:19:55.220 --> 00:19:58.560
And this actually is independent of what's happening in the terminal.

415
00:19:58.840 --> 00:19:59.940
So I found for.

416
00:20:00.000 --> 00:20:05.860
new feature, I integrated a new framing functionality to the Novo dashboard.

417
00:20:05.860 --> 00:20:09.380
So you could eventually be able to have a conversation with Claude and

418
00:20:09.380 --> 00:20:13.000
then Claude will actually create the framed grid with the different

419
00:20:13.000 --> 00:20:15.600
bullet points and stuff underneath that we could send to a client

420
00:20:15.600 --> 00:20:17.100
and then export that to Notion.

421
00:20:17.360 --> 00:20:20.280
So I was able to do that in about an hour using this process.

422
00:20:20.280 --> 00:20:23.500
And I built a little PRD for it and had it executed and it actually

423
00:20:23.500 --> 00:20:24.780
worked right out the gate.

424
00:20:24.940 --> 00:20:25.800
I was very impressed.

425
00:20:26.220 --> 00:20:28.840
It does run out of like tokens and usage.

426
00:20:28.840 --> 00:20:30.180
You'll see, depending on your account.

427
00:20:30.420 --> 00:20:31.620
So just experiment with it.

428
00:20:31.640 --> 00:20:35.060
If it, try these different workflows and see what works for you.

429
00:20:35.060 --> 00:20:38.000
So that's everything I want to touch on for the PRD and we'll

430
00:20:38.000 --> 00:20:39.180
just jump into some discussion.
