WEBVTT

00:00:00.000 --> 00:00:02.640
I'm honestly blown away

00:00:02.960 --> 00:00:05.600
by the huge disconnect between

00:00:05.840 --> 00:00:09.840
people like I have here on the left where they say, I tried Cloud Code on your recommendation,

00:00:10.400 --> 00:00:14.505
and I have a very different opinion than yours. It was horrible.

00:00:15.065 --> 00:00:22.425
Then you've got people over here on the right that say Cloud Code made programming fun again. As you may know, I fall more on the right side.

00:00:22.825 --> 00:00:24.665
And I've been thinking a lot, like, why

00:00:25.590 --> 00:00:28.310
do I see such a divide between

00:00:28.790 --> 00:00:30.870
people loving Cloud Code

00:00:31.110 --> 00:00:34.070
and then people absolutely hating Cloud Code?

00:00:34.710 --> 00:00:42.785
And I I got to thinking, like, maybe it's just the way I'm using it. So what I wanna do today is I wanna break down all the different things that I've learned.

00:00:43.185 --> 00:00:45.585
I've tried to actually capture everything I could,

00:00:45.905 --> 00:00:47.505
all the techniques that I use.

00:00:48.065 --> 00:00:59.610
And I'm gonna go through them one by one. I won't make this incredibly long, and I'll try to put time stamps below so you can kinda jump between them. So the first tip that I wanna talk about is something brand new, but I have loved it.

00:00:59.930 --> 00:01:03.610
Like, this is actually something that I didn't realize how much I missed,

00:01:03.850 --> 00:01:07.690
and it could be one of the reasons why a lot of people still really prefer root code.

00:01:08.565 --> 00:01:16.325
If you hit shift, tab, tab and let me pull over the terminal here. So shift, tab, tab, you can see over here on the bottom where it says plan mode on.

00:01:17.125 --> 00:01:19.285
What you can do is you can actually

00:01:19.445 --> 00:01:21.605
have a conversation with Claude,

00:01:22.280 --> 00:01:29.000
And, basically, it will generate a plan of all the things it's gonna do, and then you could just kick it off and run it. It's magical.

00:01:29.240 --> 00:01:37.400
Now I have someone in Discord to thank for this. This actually just released a few days ago. Definitely try it out. Shift tab tab is not an obvious,

00:01:37.400 --> 00:01:40.065
like, thing that I would actually normally hit,

00:01:40.465 --> 00:01:44.945
but it is there now in the latest latest version of Claude.

00:01:45.505 --> 00:01:46.065
Now

00:01:46.625 --> 00:01:56.550
the tip two that I would give you is talk to it like a teammate. There's a few different ways you can talk about talk to it. But you can you know, think about how you would talk to another engineer.

00:01:57.030 --> 00:01:58.950
Ask it questions about the code.

00:01:59.270 --> 00:02:01.190
What does this class do?

00:02:01.430 --> 00:02:02.310
Which API

00:02:02.630 --> 00:02:06.630
like, one of my favorite things is I I couldn't remember the name of an API.

00:02:07.110 --> 00:02:10.625
And I was like, you know, I was like, start and all this stuff.

00:02:11.105 --> 00:02:12.225
And I said, okay.

00:02:12.625 --> 00:02:14.465
Uh, when onboarding starts,

00:02:14.705 --> 00:02:20.225
what API am I calling? And in a few seconds, you know, it ended up having the answer for me, and it was correct.

00:02:20.710 --> 00:02:25.910
You can also do things like change the login button. You don't even need to point to the component name.

00:02:26.550 --> 00:02:28.470
Um, you don't even need to put to the file.

00:02:28.710 --> 00:02:32.550
It does help it speed things up if you do point to the file, which I'll talk about in a minute

00:02:33.125 --> 00:02:34.405
There's a button

00:02:34.645 --> 00:02:39.765
that says create campaign. When it's clicked, I get a 500 server error from the API. Here is the log.

00:02:40.005 --> 00:02:43.045
That is a that is one that I actually used yesterday

00:02:43.285 --> 00:02:46.085
because I was getting a weird 500 error

00:02:46.165 --> 00:02:49.560
for, uh, just a field that was missing. So then

00:02:50.120 --> 00:03:05.865
it ended up fixing that for me, and I didn't have to go in and actually do anything too crazy there. You can also do, like, explain this thing to me. It it just works really, really, really well. Here's another project that I've been working on. I say, can you tell me what the API is for logging in

00:03:06.345 --> 00:03:08.025
and the format?

00:03:08.265 --> 00:03:09.545
And it

00:03:09.545 --> 00:03:15.850
starts to answer that question for me. It does a great job on it. But I also recommend being more precise and surgical.

00:03:16.170 --> 00:03:21.930
In this file, I need you to add a function that validates x y z before letting the user click sign up.

00:03:22.490 --> 00:03:24.490
Here's an example of one that I did.

00:03:24.810 --> 00:03:29.930
In this file, the calculated LTV last 90 is different from what shows on this file.

00:03:30.495 --> 00:03:34.815
In this case, the number of customers is the same, but the LTV is different.

00:03:35.055 --> 00:03:41.775
Work through the likely calls and a proposed plan to fix it. Very surgical. Like, I don't want it to actually

00:03:42.510 --> 00:03:50.990
code anything. I actually wanted to go try to figure out what the problem is. I'll kick this off and I'll go work on something else. It ends up being a very minor change or

00:03:51.070 --> 00:04:03.475
it may be a little bit more in the weeds. I can kind of take control of it if I need to there. Now this is one of the prompts that the formats that I like to use for long prompts. So a lot of times I'll be working on a new feature or I want something a little bit bigger.

00:04:04.195 --> 00:04:06.355
You need to be even more precise.

00:04:06.595 --> 00:04:12.115
So I'll use XML tags that I actually I know this is crazy, but I have like a million notepad on my Windows.

00:04:13.080 --> 00:04:14.760
A billion notepads open.

00:04:15.240 --> 00:04:18.120
And this is the format that I'll use. I'll use things like instructions,

00:04:18.200 --> 00:04:19.560
requirements, testing.

00:04:19.800 --> 00:04:21.160
Great tags to use.

00:04:21.720 --> 00:04:29.785
Clog code seems to follow those really, really well. So I'll build something like this where I'll this is an exact example that I actually used.

00:04:30.185 --> 00:04:35.545
So I will say build a serverless user authentication system using AWS Cognito, Lambda, and CDK,

00:04:36.025 --> 00:04:41.360
and then I kind of fill in all the stuff. So I'll go through and tweak this. I actually will use AI

00:04:41.600 --> 00:04:46.320
to help generate this originally, uh, initially, and then I just go in and kinda manually change it.

00:04:46.880 --> 00:04:48.880
And this will help a ton

00:04:49.440 --> 00:05:04.115
with the way that the Cloud Code will actually pick up this feature and run it. I've, uh, Cloud Anthropic itself actually talk about how well Cloud has been trained on following XML based tags, and you can actually reference them in other

00:05:04.915 --> 00:05:24.875
parts of the prompt. For example, you can be make sure you refer back to this information area or make sure you do this particular thing. And I actually use that a lot in my production prompts as well. So this is a you know, this is an example of a prompt that I would build outside of Cloud. I wouldn't just type it in, and then I copy and paste it in, and we're good to go at that point.

00:05:26.475 --> 00:05:42.800
Make sure you use a net to create a Cloud dot m d file. Talked about that a little bit, but also make sure you keep it up. So tell it to update it once in a while. This is something I've talked about in previous videos quite a bit, so make sure you just are aware of the slash init command. That's a very, very, very powerful one.

00:05:43.520 --> 00:05:54.875
Now this is one that I know a lot of people don't know about. But let's say for some reason you end the day, you close out the conversation, cloud exit, you can simply hit claw dash dash continue to load up your previous conversation.

00:05:55.195 --> 00:06:01.435
You're good to go. It's super helpful. There's also ways to go look at your clawed logs and grab the idea of a conversation,

00:06:01.595 --> 00:06:11.870
and then you can load that in as well. But claud dash dash continue is the one I probably use the most. Because most of my conversations, my old ones, I don't really want to resume them very well. For the longest time, I was actually

00:06:12.110 --> 00:06:17.950
exiting claud or opening up another terminal to actually interact with GitHub. And I still do this quite a bit,

00:06:18.645 --> 00:06:23.605
but there's no reason to always do that. There are times that I just want to go ahead and commit.

00:06:24.005 --> 00:06:26.885
So you can literally just type in commit into ClogCode,

00:06:27.205 --> 00:06:32.005
and it'll actually go through. You could see here where I've actually been asked if I wanna git add that file

00:06:32.325 --> 00:06:42.220
and basically eventually do a git commit dash m. I do actually love the commit message it has here. Another thing that I'll typically do, though, is if I

00:06:42.780 --> 00:06:48.940
am if I wanna do the commit myself, I actually tell it to generate a commit message for me. I'll copy and paste it, and I use that.

00:06:49.595 --> 00:06:55.915
I typically don't use it, but you can actually use the push as well. Um, so you can say,

00:06:56.315 --> 00:07:11.080
uh, push branch or push to dev, and then you could actually get it to to to go ahead and do the push for you as well. Again, you do need to have git configured correctly to make this work, but it is a very useful thing if you just really wanna kinda have it do its thing in particular.

00:07:12.040 --> 00:07:19.635
Now this is one I freaking love. So now we're starting to get into some stuff that I probably would think that you guys probably haven't tried yet.

00:07:19.875 --> 00:07:22.275
So let's say that I'm in a,

00:07:23.155 --> 00:07:24.835
uh, I'm in a terminal,

00:07:25.395 --> 00:07:28.115
and I just have an idea for something I wanna go to lunch.

00:07:28.770 --> 00:07:37.650
So I will say something like claw dash p. So this is basically it's just gonna sit there and do the work behind the scenes. I don't have to interact with it. I don't have to approve anything.

00:07:37.970 --> 00:07:45.055
I'll say, I want you to make it so that I can attach a user avatar via an URL to my user record. I need an APN model update.

00:07:45.535 --> 00:07:46.655
Very basic.

00:07:47.055 --> 00:07:54.175
And this is what ends up happening. Like, I get back this once it's finished. All the work's done. I can then now go in and review it.

00:07:54.655 --> 00:07:57.215
This is great. You can kinda think about this like a local

00:07:58.030 --> 00:08:05.870
codex. You can just kinda kick off these tasks. And sometimes I'll kick off couple of them at a time in different parts of the code, and then I'll come back to it

00:08:06.350 --> 00:08:15.875
and just see what it did. Now but you do end up losing the interactivity to it. So if it's something that, you know, you kinda wanna have a conversation with or be able to iterate on,

00:08:16.195 --> 00:08:20.675
you do want to not do the Dashpeak. But it's so freaking awesome

00:08:20.915 --> 00:08:25.155
if you just wanna get a start on it and treat it literally like codecs

00:08:25.550 --> 00:08:27.790
or some sort of remote aid agent.

00:08:28.190 --> 00:08:32.910
This is one I've started using a bit more. This is a new project I'm working on. But in general,

00:08:33.390 --> 00:08:36.430
what I wanna say is like Claude custom slash commands.

00:08:36.830 --> 00:08:43.265
You can actually create your own slash commands by going into your dot Claude folder, creating a folder called commands,

00:08:43.425 --> 00:08:45.425
and then making a markdown file.

00:08:45.505 --> 00:08:48.545
In this case, let's just say I wanna do an update docs one.

00:08:48.945 --> 00:08:51.985
So I'll say evaluate the current project, evaluate the current documentation,

00:08:52.480 --> 00:08:58.880
update cloud dot md with any new functionality, update other documentation as needed. And now you can see I do slash,

00:08:59.200 --> 00:09:02.080
and I have that command in there. This this is a

00:09:02.560 --> 00:09:03.440
brilliant,

00:09:03.520 --> 00:09:04.080
like,

00:09:04.560 --> 00:09:05.760
brilliant addition

00:09:06.205 --> 00:09:16.765
that I've actually started to play around with a lot more in my main repo that I work on a daily basis. I think I have two three, actually, that I've created, all very, very useful.

00:09:17.005 --> 00:09:35.290
This one is one that Anthropic kinda recommends where you can be like, please analyze and fix the GitHub issue. You can pass in a number for the GitHub issue, and it has the these commands here. Like, follow these steps. Use GitHub issue view to get the issue details, etcetera, etcetera, all the way down to push and create a PR to literally automate the entire thing

00:09:35.925 --> 00:09:38.965
without ever interacting with it. It's super, super sweet.

00:09:39.925 --> 00:09:45.525
This is one thing a workflow that I've used, and I use this with other AI too. But have

00:09:45.605 --> 00:09:46.565
Claude

00:09:46.725 --> 00:09:53.230
review work from Claude, and you can have one in Opus and one in Sonnet. Now I primarily use Sonnet just because I want as much

00:09:53.790 --> 00:09:55.230
usage as possible.

00:09:55.710 --> 00:09:57.710
But I will, a lot of times,

00:09:58.030 --> 00:10:00.670
basically, go through and I'll have something done.

00:10:00.990 --> 00:10:03.470
And then I'll be like, alright. This is a new file I created.

00:10:04.335 --> 00:10:09.695
Go review this in another window. So I basically bring a new context. Look for issues.

00:10:09.935 --> 00:10:13.455
You can make a prompt for this as well, by the way. You can do a prompt,

00:10:13.695 --> 00:10:16.495
uh, a custom prompt if you have, like, special review guidelines,

00:10:17.090 --> 00:10:18.850
and it gives me the reviews,

00:10:19.090 --> 00:10:29.890
I will typically go through and have a conversation about this, get it to the point I want, and I give it back to the one that actually built it, and I have it iterate on it. It's very, very handy to start thinking about AI,

00:10:30.395 --> 00:10:45.910
kind of iterating on things that AI has actually done for you. And Cloud Code is perfect, absolutely perfect at that. Yep. Use screenshots. Really use them. You can drag and paste or drag and copy them directly into the terminal. This is what it looks like for me when I do that. It works on WSL.

00:10:45.910 --> 00:10:48.150
It also works really well in Linux.

00:10:48.470 --> 00:11:02.015
So in my case, what I typically do is I'll just drag a file itself into the terminal. It really, really is handy, especially when you're doing design stuff or if there's a UI bug. Copy and paste it in there or just drag and and put it in there rather,

00:11:02.175 --> 00:11:06.895
and then have tell it what's going on with it, and it helps it so so much. So definitely

00:11:07.215 --> 00:11:17.800
use screenshots. Don't be afraid of them. I know a lot of people like the computer use and some of the other tools. This is one of the prompts that I've been using quite a bit. Again, I have what I do is I have,

00:11:18.120 --> 00:11:23.400
um, these little text files I save on my desktop. My desktop is a mess, by the way. I need to organize that. But I

00:11:23.960 --> 00:11:27.800
will do, like, a TDD type prompt, and notice that I'm using the XML format.

00:11:28.255 --> 00:11:31.935
I'll do three different tag types, so test, implementation, and rules.

00:11:32.255 --> 00:11:55.910
And then I'll say, we are doing test driven development. The implementation does not quite exist yet. Please implement my test, then implement the functionality to pass the test. Now you can actually go on and say, go ahead and commit and do a PR as well. I actually wanna review the code before that happens. So I do just usually stop it here. You can add any rules that you want in there. This is a very, very cool way because it actually

00:11:56.535 --> 00:12:01.255
makes ClogCode pretty powerful. If if you have something kinda isolated enough

00:12:01.495 --> 00:12:17.020
to where you can just have it iterate on to make the tests that it wrote pass, it's pretty pretty freaking powerful, to be honest with you. So definitely give this a try if you haven't already. You may even have a better prompt than what I have here, and I would love to hear that in the comments below.

00:12:18.220 --> 00:12:23.020
Now this is one that I think a lot of people were most surprised about,

00:12:24.115 --> 00:12:26.275
but it is so so helpful.

00:12:26.595 --> 00:12:29.235
So I use a combination of ultra think,

00:12:29.715 --> 00:12:41.840
but also a few other things in this prompt. This is the prompt that I save, and I just copy and paste it in, and I fill in what I wanna do. So I'll say, please ultra think through this. Start by exploring the code base and gathering the necessary context.

00:12:42.080 --> 00:12:47.200
You should use sub agents where it makes sense. I want you to explore, plan, and implement the following.

00:12:48.075 --> 00:12:50.475
So, basically, take a look at this example

00:12:50.475 --> 00:12:50.955
here.

00:12:51.515 --> 00:13:05.740
All of the stuff I just said, implement a new table for child profile. This should include name, birthday, and avatar name, avatar image. Child profile should reference a user as the owner. The users add them to their account. It's possible in the future that other users will have access to viewing child profiles

00:13:05.820 --> 00:13:07.580
owned by a different user.

00:13:08.140 --> 00:13:09.340
And it goes through

00:13:09.660 --> 00:13:13.980
and starts to do work. So you can kinda see some of the thinking that it did here.

00:13:14.695 --> 00:13:26.615
Then it builds a really great task list manager or a task list of things that it needs to go through and do. And this is spot on. And the implementation here was incredible.

00:13:26.850 --> 00:13:37.890
And you can see that we've now triggered this thinking dot dot dot because we've told it to think harder. This is all done with Sonnet four. This is not Opus. I've heard people could say they get even better results

00:13:38.130 --> 00:13:39.570
from Opus, but I have

00:13:40.130 --> 00:13:43.295
again, I have most of my testing has done been done with Sonnet.

00:13:43.695 --> 00:13:49.375
Now the last thing that I wanna do say is don't be afraid to throw away what it does.

00:13:50.335 --> 00:13:51.935
This is something that

00:13:52.255 --> 00:13:56.335
I feel a lot of people struggle with. And if I were was a betting person,

00:13:57.040 --> 00:14:00.560
I think a lot of people spend a lot of time fighting AI

00:14:01.120 --> 00:14:04.560
to try to get it to go back on the rails when it's already messed something up.

00:14:04.960 --> 00:14:05.920
Git commit.

00:14:06.240 --> 00:14:19.745
Git commit. Throw away things that mess up. Go back. Start over. Reword it. It is okay. Like, code is now pretty cheap to generate. So if it goes off the rails, go ahead and just wipe it away and start over.

00:14:20.385 --> 00:14:26.145
So my hope is that I'll start to gather even more information over time to try to understand

00:14:26.720 --> 00:14:31.440
why there is this, like, massive disconnect. And I see this. I'm talking

00:14:31.840 --> 00:14:33.280
tons of messages,

00:14:33.840 --> 00:14:37.840
uh, saying, I love Cloud Code or I hate Cloud Code.

00:14:38.240 --> 00:14:42.815
And there may just be a nature that people are not CLI based users.

00:14:43.295 --> 00:14:46.095
You know, it is a just a different experience.

00:14:46.655 --> 00:14:52.095
And I can't fault anyone for wanting to go back to a group code. I love group code. I still use it on a daily basis.

00:14:52.650 --> 00:14:55.370
But I also think CloudCode really

00:14:55.530 --> 00:14:56.250
does

00:14:56.410 --> 00:15:03.770
make programming very fun. I don't know another way to actually explain it other than I just have so much control

00:15:04.090 --> 00:15:06.170
of how I actually wanna get things done.

00:15:07.285 --> 00:15:17.925
And I can choose, like, I could choose to do a one shot and let it go. I can actually have it go really deep and build a task list. The control that I get on it is just absolutely

00:15:17.925 --> 00:15:18.805
incredible.

00:15:19.125 --> 00:15:29.890
So, anyway, I hope these tips have been helpful to all of you. If they have in some way, let me know in the comments below. If there's new ones that you actually know that I haven't included here, um, this is just my own personal,

00:15:30.210 --> 00:15:32.850
uh, way of using CloudCode. I'm sure there are

00:15:33.455 --> 00:15:35.935
ways that people use it that are beyond my,

00:15:36.175 --> 00:15:40.015
uh, beyond my knowledge at this point, which would be amazing to learn for myself.

00:15:40.255 --> 00:15:45.055
Anyway, I hope you guys all have a wonderful day. And until next time, everyone. Peace out.
