When working with Claude Code, Codex, or any other agentic engineering tool, one really important concept that is supported by all these tools that you should understand and use is the concept of agent skills. And it's easy to ignore them because it's just a bunch of Markdown files or because setting them up can be cumbersome, but it is worth it, in my experience. And a couple of days ago, there was a post by someone on the Cloud Code team, so someone from Anthropic, where he shared the different types of skills they are using internally because indeed, you can differentiate between different types of skills you wanna create. They're all just Markdown files in the though you can add a bit more. I'll get back to that. But, of course, what's inside that Markdown file can be quite different. Now, this image here, and this entire post can be quite overwhelming and can lead to not doing anything because you feel like, "Okay, if I gotta spend a week setting up skills, I'd rather not use them at all. " offer an alternative to that in this video. I think you can simply have three core types of skills that you should care about and that will lead to better results. By the way, as I mentioned, all these tool support skills, set them up, how to actively invoke them, how to build skills for Cloud Code, for Codex, in my respective courses. And if you wanna get those courses or get access to all my courses, including future courses, promotion where you can get the annual membership, which gives you full access to all my courses as long as you have the membership for a super low price. Link below. But regarding these skills here, they are just Markdown files, Markdown files that place, and the exact place depends on the tool But in the end, they are there for prompt templates context that can be injected into your agentic engineering sessions. And the first type of skill is the documentation or the knowledge skill, I would say. Now, what do I mean by that? Here, I'm in my academind. com project, so the project of my website, and in there, I got a bunch of agent skills that just kinds of documentation or knowledge I expose to the AI agent here. For example, some TypeScript knowledge here, some knowledge about more advanced TypeScript features, maybe some newer features like the satisfies keyword, which hasn'st been around for 10 years. Some stuff I want the AI agent to be aware of or to be reminded of because it might not be the first things it's reaching for because maybe it hasn't seen as much of that stuff in its training data. So this really is something you could find in the official TypeScript documentation. The thing just is that unless you explicitly tell the agent to do so, it very likely will not go to that official documentation. It the TypeScript documentation. So I rather have my own skill, and this skill here has some metadata. The metadata is important because the idea behind the skills is that not all available skills are loaded into the context window every time. Instead, just the metadata is loaded into the context window, and then the AI agent can decide for which skill it wants to read more depending on your prompt and your tasks you gave it. You can also actively invoke skills you're using, but the main idea is that the agent loads them on its own depending on that metadata. So here I have some metadata, uh, where I try to give the agent some idea on when to use this skill. And therefore, that is one type of skill that you provide extra documentation or knowledge that the agent may not have because maybe you're also working with some library which was not in the training data because it's or where you know that it maybe hasn't seen a lot of about want it to be aware of. So that's the- the first type of s- skill, I would say. The second type of skill is behaviors, best practices, a- approaches, that kind of stuff. And here, the idea really is that, of course, when you're working on a project, you may have certain preferences regarding code style or regarding how some stuff should be done. So for example, I have this clean modern React code skill, is not so much about documenting React features, but instead about establishing some rules the agent should follow when it's writing React code to ensure that certain- that- that certain antipatterns are less common, at least, because at
Segment 2 (05:00 - 10:00)
least for me right now, AI agents tend to generate code that's not always the highest quality. And you could argue whether you care about I created a separate video on a different channel about that. I would say it matters because code quality matters for being able to review the code, it can have performance implications, implications on how easy the code is to maintain or extend, so I'd say it matters. And if you have certain behaviors or patterns you want the agent to use, then such a behavioral skill where you tell it how to write good React code that you- that it should try to avoid useEffect and how it can avoid it, that kind of skill can be interesting. So here, it's less about providing extra documentation, extra knowledge, but instead about instructing behaviors. Now, what's interesting about this skill some related files with a file with more details about useEffect because all these skill files are loaded lazily, as I already said, and you can, in a skill file, reference another file like this the references folder here, and then the AI can decide to load that file only when it knows that it is working with useEffect, that it- doing something with useEffect. So that here, I then have more details about antipatterns it-... it should be aware of. And setting up these kinds of skills can be well worth it, also because, of course, I can copy that into any React project. I don't have to rewrite it all the time, and it can lead to better code there. So that's the second type of skill I would recommend doing, and you don't have to think of all the different patterns you might wanna describe. Instead, just act step by step. If you see that in your project, the AI agent is consistently doing something you don't it to do, add a skill where you think about a good description that increases the chance of the skill being loaded in the right times, and then put your instructions in So, use it to fix stuff, and over time, you'll build a skill library with your specific, um, best practices and behaviors you want to enforce, and you can then use So, don't see it as that big upfront task that is super intimidating. Instead, build that skill base, um, step by step. Now, the third type of skill, and that's a different type of skill, is, uh, functionality driven skills. Thus far, we talked about documentation specific behaviors. Now, these agentic engineering tools like do all kinds of stuff. They can write code obviously, to writing code in- in projects. Since they can write code, they can do anything on your computer. If you want, you can use them to analyze, um, PDF documents, for example, or I have some global skills on my system which are not specific to just programming. Some of them are, but not all. You could set up a skill that tells an agent how to generate an image. Now, what do I mean by that? Well, there are of course various services or APIs you can use to generate images or video with AI, something like Fell. ai. This is not a sponsored video by the way. There also is Replicate, and there are different services. Now of course, if you want to generate an image, project you need a dummy image in your website, or for something totally different, uh, an image you wanna print you can use these services and you could use Codex, Claude Code, the PAI agent, which I like a lot, and ask it to generate an image for you. By default, it very likely will fail, because these agentic engineering tools, they don't have image generation But if you give them the right skill, which still is just a Markdown file, in there, you can of course describe how to interact third-party API to generate an image. Now, just describing that interaction might be one way, a step further. Your skills can also come with scripts. Not all need them, but here, my GenerateImage skill does. This script is a script which, to be honest, was written by AI. It was white-coated. And in here, I have some- some scripts that interacts with the Fell API, so of that image generation service. I essentially took their documentation, put it into a prompt, and told an AI agent to write me a tool that can utilize or that can talk to that API by Fell to generate images. So, a little CLI tool was written here, a little script that can talk to that API and generate images with different parameters and so on. And then the Skill. md file, that file just explains how to use
Segment 3 (10:00 - 13:00)
that script. It points at it and it tells the agent how to execute it, which parameters to pass, and- and so on. And then I got the. env file here with my Fell key. And when that script here is invoked through bun, which is what I'm telling the AI in the Skill. md that. env file will be loaded automatically so I don't have to give my agent access to that key. I don't have to tell it, "Please generate an image. By the way, here's the key. " Instead, generate an image. It will, thanks to this description, load this skill when it needs to, and then in there, it learns that it just needs to run a script and it doesn't need to worry about the implementation details And that is another kind of skill that I think is interesting, not just related to programming. You could, of course, also have a script driven skill there, that formats the code or I don't know. But in general, because you can really use these agents just generating code, and therefore that definitely is another skill category be aware of. But yeah, as a whole, I'd say don't overcomplicate it, but also don't sleep on it. Instead, build your skill library step by step. It's worth noting that, of course, there are skill registries like skills. sh where you can browse skills built by other people. Just two important notes. This can be very useful, but what I would not do is say, "Okay, I'm building a React project with Tailwind and Better Off and I don't know, so I will search for all the skills that could potentially be interesting there, my project. " That might be counterproductive, because you're loading lo- more and more metadata into your context m- some of these skills just might not So, that is one thing to be aware of. I would not always try to add all the skills that you could theoretically add. Instead, you should be selective and focus on the- on the things the- the AI consistently gets wrong or, um, where you know that extra documentation will be needed. That's one thing. And the other thing about these registries, of course, is you are including skills that were written by other people. These skills, as we learned, are just prompts. If there is something malicious in one of these prompts, that could be a problem. That can lead to a prompt injection be aware of that. Now, some registries like skills. sh, to my knowledge, do some form of scanning to kind of, um, reduce the danger of s- uh, prompt injections, but you're never 100% secure and that is therefore something to be aware of. So, whenever you're using a skill written by (laughs) It's- it's there for you to read. Uh, take a look at it and see if there is something malicious in there. That's just one word of caution. But yeah, other than that, use skills. Don't feel like you need to build a super system here. Instead, play around with them and keep these three core types of skills in mind