1
00:00:00,000 --> 00:00:06,000
You know that I'm a hands-on type. I like building stuff and that means I like blue days the most.

2
00:00:06,000 --> 00:00:11,680
Blue days, building days. Welcome to the culmination of week two. Welcome to week two,

3
00:00:11,680 --> 00:00:16,559
day five. Let's get cracking. This is the day that we're going to build out a SaaS platform.

4
00:00:16,559 --> 00:00:21,760
I'm working on one that is going to be a legal document drafter called PreLegal that we started

5
00:00:21,760 --> 00:00:26,000
yesterday. You might be working on that too or you might be going in a totally different direction,

6
00:00:26,000 --> 00:00:30,479
maybe inspired by the idea of having some template documents, having an AI chat that

7
00:00:30,479 --> 00:00:35,680
lets you add commercial value. That's what we're doing. Let's get into it. And don't hate me,

8
00:00:35,680 --> 00:00:41,599
but repetition is important sometimes. And we're going to repeat for one more time the MCP skills

9
00:00:41,599 --> 00:00:47,360
plug-in stuff. Just at a high level, there are these three ways to give Claude capabilities.

10
00:00:47,360 --> 00:00:51,840
You're pretty familiar with MCP now, the way to stitch together models and tools,

11
00:00:52,479 --> 00:00:58,400
skills, which are just these text files, these markdown files that allow you to add in

12
00:00:58,400 --> 00:01:03,360
information to Claude in a way that is progressive and which is efficient use of context,

13
00:01:03,360 --> 00:01:08,400
and then plug-ins, which is a sort of package of all of the above and other stuff too,

14
00:01:08,400 --> 00:01:15,360
like agents that you're now getting a good handle on. And all of this together, it has pros and cons.

15
00:01:16,080 --> 00:01:22,720
And the pros for MCP is, again, about the adoption, the ecosystem, the flexibility.

16
00:01:22,720 --> 00:01:28,319
The con is that it can be something that uses up lots of context and then they can be complex.

17
00:01:28,319 --> 00:01:32,319
And we saw the Jira one can do things like losing its authentication and stuff,

18
00:01:32,319 --> 00:01:37,680
which is really annoying. Skills, simpler, easier, very efficient with the context,

19
00:01:37,680 --> 00:01:43,599
maybe less powerful. And plug-ins, something of the best of both, very easy to set up,

20
00:01:43,599 --> 00:01:48,080
but they are strictly for Claude code. That is the lay of the land.

21
00:01:48,080 --> 00:01:51,680
And when you're looking for new functionality, of course, the first place to start is with

22
00:01:51,680 --> 00:01:55,760
plug-ins. And you go for things like MCP when you want to get very detailed and specific,

23
00:01:55,760 --> 00:02:00,239
as we did with Atlassian's Jira and with the GitHub one too.

24
00:02:00,239 --> 00:02:06,879
All right. And then the other thing to recap is going to be the thing that we built yesterday,

25
00:02:06,879 --> 00:02:14,320
which began by reading in a Jira issue using the Atlassian MCP server. And based on a Jira

26
00:02:14,320 --> 00:02:19,839
issue that had been written and was out there on Jira, we then used the feature dev plug-in,

27
00:02:19,839 --> 00:02:23,440
which took us through the seven step process, step six of which was skipped.

28
00:02:24,160 --> 00:02:30,880
And that then was used to create a PR using the GitHub MCP server. All of this,

29
00:02:30,880 --> 00:02:36,639
running inside Claude code, all kicked off by that one command. That command is part of

30
00:02:36,639 --> 00:02:43,440
the feature dev plug-in. We just said, implement Jira issue PL3 with a Next.js app in a directory

31
00:02:43,440 --> 00:02:49,440
called frontend, raise a PR when you're done. That's it. Go do it. And it went and did it.

32
00:02:49,440 --> 00:02:52,559
And so the thing that's missing from here that you might be like, Ed, you said that

33
00:02:52,559 --> 00:02:56,559
we were going to do skills. We didn't use a skill. So we'll make up for that today

34
00:02:56,639 --> 00:03:01,679
and recap a reminder on how skills fit into the picture. They can be included in plugins,

35
00:03:01,679 --> 00:03:08,800
of course, but basically it's this idea of having a metadata, which describes at some very simple

36
00:03:08,800 --> 00:03:14,160
level what this skill is about. And that always gets read into context. And then progressively,

37
00:03:14,160 --> 00:03:20,479
the model decides, do I need to use this? And if so, then it reads in the instructions.

38
00:03:20,479 --> 00:03:25,520
And in reading the instructions, there are references potentially to other files and

39
00:03:25,520 --> 00:03:31,279
even to scripts that can be run. And only if it needs to, the model decides to read them in as

40
00:03:31,279 --> 00:03:37,360
well. So there's this sort of three level of depth of information that the model can read.

41
00:03:37,360 --> 00:03:42,720
It always reads the top, the metadata, and it chooses what else to read in. And the metadata

42
00:03:42,720 --> 00:03:49,199
and the instructions all sit together in one file called skill.md together. The metadata is at the

43
00:03:49,199 --> 00:03:54,399
top. You may remember it has like a special way of symbolizing it with some hyphens that we will

44
00:03:54,399 --> 00:04:01,039
do in a second. So you've got that. And yeah, they're implemented using this fancy thing called

45
00:04:01,039 --> 00:04:07,600
a file system architecture, which is just saying, hey, it's just use folders with a particular name.

46
00:04:07,600 --> 00:04:11,679
And so the structure is shown right there. You have a .cloud in your home directory,

47
00:04:11,679 --> 00:04:16,880
and you also have one in your project directory. And if in there, you put a skill with this kind

48
00:04:16,880 --> 00:04:22,239
of folder structure, then lo and behold, that will be a skill that Cloud Code can use.

49
00:04:22,239 --> 00:04:29,600
That's all there is to it. Okay, so here I am back, back in VS Code, back in the pre-legal

50
00:04:29,600 --> 00:04:34,959
repo. It's time for us to get on with today's project. I'm just going to do a quick git status

51
00:04:34,959 --> 00:04:41,519
to understand where things stand. Check we're in branch main. And actually, in submitting all the

52
00:04:41,519 --> 00:04:47,359
PRs, Cloud Code did not automatically submit the .cloud directory because it felt like it wasn't

53
00:04:47,359 --> 00:04:53,519
actually associated with any of the work that it was doing. So let's just do a git add to bring

54
00:04:53,519 --> 00:05:04,320
that in and commit that, the cloud settings, and push that to the repo so that we have now made

55
00:05:04,320 --> 00:05:09,519
sure that we have everything consistently in our repo and that other people in the project

56
00:05:09,519 --> 00:05:15,359
will also be using the same plugin as us. All right. Now, in starting up our project for real

57
00:05:15,359 --> 00:05:19,920
work based on where we are with pre-legal, there's a few things we might want to do. One of them is

58
00:05:19,920 --> 00:05:23,760
something that maybe we should have done yesterday, but I thought we'd wait until the real project

59
00:05:23,760 --> 00:05:27,920
kicked off. And what is that? What do you normally do at the start of a project like this? You

60
00:05:27,920 --> 00:05:33,760
normally make a good cloud.md file. But first, there's something that I've not even mentioned

61
00:05:33,760 --> 00:05:39,279
to you, which is that there's more than one cloud.md file. And I'm not referring to the fact

62
00:05:39,279 --> 00:05:44,160
you can have many of them in different subfolders. I'm saying that not only is there one in your

63
00:05:44,160 --> 00:05:49,519
project directory, but you can have a cloud.md file somewhere completely different. And you've

64
00:05:49,519 --> 00:05:54,720
probably already guessed this. You know the way that there's this .cloud folder right here,

65
00:05:54,720 --> 00:05:58,959
which is where you have settings. And you remember I told you, you can have skills in here as well,

66
00:05:58,959 --> 00:06:05,679
and that you can also have skills in your home directory. Well, you can also have a cloud.md

67
00:06:05,679 --> 00:06:11,359
file in your home directory. And that means it's not associated with any project. It's associated

68
00:06:11,359 --> 00:06:17,920
with you, the user. It's for your work with Cloud. And of course, I have one in my home directory,

69
00:06:17,920 --> 00:06:22,880
and you should too. And it's something which should tie to your style and to what matters

70
00:06:22,880 --> 00:06:26,880
for you when you're working with Cloud Code. And back in the day, there was always people

71
00:06:26,880 --> 00:06:32,239
all had the sort of the cloud.md that you should have. And of course, Anthropic has been catching

72
00:06:32,239 --> 00:06:37,920
up. And it's been incorporating common things already in Opus. So there's less need to have

73
00:06:37,920 --> 00:06:41,760
something that's boilerplate. Nonetheless, I have some things that are my pet peeves.

74
00:06:41,760 --> 00:06:48,160
And so I will show you right now. I have just gone to VS Code to new window. And then I did

75
00:06:48,160 --> 00:06:53,519
like an open. And then I just opened in my home directory. And this is what I see. So this is my

76
00:06:53,519 --> 00:06:58,720
entire home directory. There's lots of dot folders in here. There's one called .cloud.

77
00:06:58,720 --> 00:07:03,440
And this contains all of Cloud's own folder structure that you shouldn't touch. That has

78
00:07:03,440 --> 00:07:08,880
lots of things that are the stuff that it looks at, like it's telemetry. It's got some project

79
00:07:08,880 --> 00:07:14,480
information that it stores, lots of stuff. And then it has a cloud.md. And that's what we're

80
00:07:14,480 --> 00:07:19,119
looking at right here. And I've just got a few instructions in here. And if you Google, you'll

81
00:07:19,119 --> 00:07:23,600
find that people have all sorts of tips about things to put in here. As I say, generally

82
00:07:23,600 --> 00:07:30,320
speaking, Anthropic has added a lot of this in by default. So you should just use this to add in

83
00:07:30,320 --> 00:07:36,559
extra nuggets of information that you want to add to Cloud's context every single time.

84
00:07:36,559 --> 00:07:41,359
So the key is to keep this super short and concise and make every word count because

85
00:07:41,359 --> 00:07:47,200
every token count. Open a preview because this goes in every single context you ever have.

86
00:07:47,200 --> 00:07:51,600
So I've just got like very important. Be simple. Approach tasks in a simple,

87
00:07:51,600 --> 00:07:56,640
incremental way. Work incrementally always. Small, simple steps. I know I'm repeating myself,

88
00:07:56,640 --> 00:08:00,880
but when you really want something to be remembered, that's not a terrible thing to do.

89
00:08:00,880 --> 00:08:07,200
Validate and check each increment before moving on. Use latest APIs as of now. Mandatory code

90
00:08:07,200 --> 00:08:11,440
style. Do not over-engineer. Do not program defensively. You'll recognize some of this I've

91
00:08:11,440 --> 00:08:17,200
also been using in my cloud.mds within the project for your benefit. But I have this stuff in as the

92
00:08:17,200 --> 00:08:25,200
standard. Use UV as the Python package manager. Always UV run, never Python 3. Always UV add,

93
00:08:25,200 --> 00:08:30,000
never pip install. Favor clear, concise docstring comments. And by the way, that's because I love

94
00:08:30,000 --> 00:08:35,280
UV and it works really well for everything I do. And I recommend the same, but you may not. You

95
00:08:35,280 --> 00:08:41,919
might prefer to use a more vanilla Python and pip. Favor concise docstring comments. Be sparing with

96
00:08:41,919 --> 00:08:47,599
comments outside docstrings. Favor short modules. Important debugging and fixing and so on.

97
00:08:47,599 --> 00:08:52,080
All right. And I'm going to add in here a few things here. Why not, since we're here,

98
00:08:52,080 --> 00:09:04,719
let's come here and let's say never use emojis. No emojis. We'll put it twice. No emojis. Never

99
00:09:04,719 --> 00:09:13,119
use emojis in code or in print statements. Print or log or log. Print statements or logging.

100
00:09:13,760 --> 00:09:18,400
Let's make that super clear because that causes problems on PCs and it causes nothing but trouble.

101
00:09:18,400 --> 00:09:34,640
And Cloud Code loves emojis. And keep readme concise. And avoid and clean up

102
00:09:36,799 --> 00:09:44,799
old files. That will probably do. Maybe that's a bit. We'll just say keep readme concise. That

103
00:09:44,799 --> 00:09:49,359
seems fine. That's enough. That's enough. Two more things that we have added to the general

104
00:09:49,359 --> 00:09:54,400
Cloud.MD. A great practice to have. You don't need to copy what I've got here. You should do

105
00:09:54,400 --> 00:09:58,479
whatever matters to you. Maybe you like emojis. Maybe you like long readmes. In which case,

106
00:09:58,479 --> 00:10:02,799
keep it. But if you're like me, then put it in here. And then I've got some important debugging

107
00:10:02,799 --> 00:10:07,359
stuff that's just, again, the really key points here. Always identify root cause before fixing.

108
00:10:07,359 --> 00:10:12,080
Prove the problem first. Don't guess. Test one test at a time. Be methodical. Don't jump to

109
00:10:12,080 --> 00:10:21,440
conclusions. Don't apply workarounds. That sounds good. And let's also add reproduce consistently.

110
00:10:22,159 --> 00:10:28,799
Let's put that in there. Keep it short and sharp. But that is the point. Okay. And with that,

111
00:10:28,799 --> 00:10:36,159
I've saved that file. That's given us a good Cloud.MD in our home directory that will always get used.