Claude Skills explained: How to create reusable AI workflows
22 Oct 2025 · 27 min
Claire Vo explains Claude Skills, reusable AI workflow modules that bundle instructions, context files, and Python scripts. She walks through the file structure, shows how Cursor scaffolds skills faster than the web UI, and demonstrates invoking them locally by typing a keyword to auto-select the right skill for tasks like turning changelogs into newsletters.
Chapters
Welcome back to How I AI. I'm Claire Vo, product leader and AI obsessive here on a mission to help you build better with these new tools. Today we have the first of many How I AI mini episodes. This week is going to be all about Claude Skills, the newly released feature from Anthropic that lets anybody create and load up Claude Code, the API, or Claude.ai with specific skills and tools it can call on at any time. I'm going to give you a view into how to create skills, what skills are, and a couple ideas about how you can use skills in your workflows. Let's get to it. Today's episode is brought to you by ChatPRD. I know that many of you are tuning into How I AI to learn practical ways you can apply AI and make it easier to build. That's exactly why I built ChatPRD. ChatPRD is an AI copilot that helps you write great product docs, automate tedious coordination work, and get strategic coaching from an expert AI CPO. And it's loved by everyone from the fastest growing AI startups to large enterprises with hundreds of PMs. Whether you're trying to vibe code a prototype, teach a first-time PM the ropes, or scale efficiently in a large organization, ChatPRD helps you do better work fast. And we're integrated with the tools you love: v0.dev, Google Drive, Slack, Linear, Confluence, and more. So you don't have to change your workflow to accelerate with AI. Try ChatPRD free at chatprd.ai/howiai. And let's make product fun again. Today I'm going to be talking to you about Claude skills. What are Claude skills? How do you create them? And what would be some good uses for folks, especially product engineers and designers out there to use Claude skills in your day-to-day workflow. So what are Claude skills? Well, Claude agent skills are a specific set of instructions and context that can be called on by Claude, whether you're using Claude Code, the web, or desktop app, to do a specific set of tasks. And Claude skills solves a really interesting problem for anybody using AI, which is Reusable workflows with a set of instructions that you want to call on demand depending on the context of your conversation. Now, many of you are going to say, why can't I use Claude projects for this? Or, you know, OpenAI custom GPTs or projects? Well, those really stick with the context you've loaded in those projects. Once you set up a project, those chats associated with those projects always call on that context. Instructions. It's not really dynamic, and you can't call on a project on demand to get it to follow a set of instructions. Also, what I've seen is Claude projects and OpenAI projects and GPTs generally have general-purpose context that can feed a variety of tasks but aren't really task-specific instructions. And so what Claude agents gives you is the ability to really define task-specific instructions, examples, and even scripts you can run that allow your general-purpose chatbot to really do tasks on your behalf. And what's nice about Claude Skills that I like is that it really is just natural language. We've seen so many releases around agents that are really workflow-built. If this, then that, call on this tool. And my preference as a general AI builder is, you know what, if these models are so great at natural language, we should be able to define things in natural language. And so what Claude skills essentially are, are Markdown files with instructions and metadata and linked files that allow you to call on demand a task or skill Give a specific set of instructions, and then really get that task or skill done. Now, here are some of my observations on the general structure of Claude skills. One, I think they're a really nice way to define and discover tasks that you're doing over and over and over with an LLM. So if you find yourself constantly analyzing data a specific way, creating a document a specific way, going through a workflow or running a script, You want these sort of like micro instructions that stay consistent over time. And I know so many of you have a Google Doc or a Markdown file or a GitHub repository where you've just kept all these prompts and you're copying and pasting them in. Claude Skills really gives you a structured framework for filling out and reusing those, those tasks over time. I would say the other thing that skills do quite nicely is bundle additional content and context into a skill through relative file references. So a Claude skill can reference other files in its folder, and those reference files can be examples, they can be templates, they can be additional instructions, and it helps Claude manage context a little bit better. So you're always going to get the agent instructions, and when necessary, you will get the contextual files linked to from the agent. So I think The discovery and context management of Claude Skills, as you see here in their help, in their, in their help article where they're describing the context window, how many tokens it uses, and when it's called on demand, is very, very useful. I would say the last thing is that Claude Skills can come bundled with executable Python scripts. And so this is maybe for more of the technical audience out there. But if you want validation of your skills, if your skills are running some sort of analysis, data cleaning, technical implementation, the ability to reference Python files within a Claude skill is actually a really interesting extension and keeps you from having to rely on the agent and the LLM itself to define that Python for you and run it in a consistent way. And so While many of these tools, including Claude, have sort of code execution capabilities when they're generating that code themselves, you can see that you get high variability in the definition of these scripts or the code and the ability to actually write out executable scripts that would be consistently used that you feel like are representative, representative of the code you want to write is very, very useful. So this is what Claude skills are. And to actually really sum it up, because I've described what they do and kind of the structure, Claude files is a folder. Like, I don't feel we have been explicit enough in some of the documentation to talk about exactly what is a Claude skill. One of the things that I think that these core model providers can do, including Anthropic, love you, but here's some tips for you, is These are clearly primitives built by engineers expected to be grokked by everyday people. And I'm going to sit here and translate them for you. So a Claude skill, the actual object, the thing that you make is a folder. That folder has a skills.md file in it, and then it can have additional files next to it. So at the end of the day, how you set up a Claude skill No joke, is you either put it in a folder for Claude Code to reference, or you zip up this folder and you upload it to the Claude.ai website. So I just want to, you know, I spent actually a good 5 minutes trying to figure out like what the hell is the asset of, of the skill. And the actual asset is a markdown file, a set of other files and folders either used by Claude Code. In your local directory or zipped up and uploaded to the cloud. So that's how they actually work. Now, I want to talk about what's in the structure of those files because I think it's really important as we start to create Claude skills. You know what's in the file, so I'm just going to walk through some of the documentation on this. So every skill has to have a skill. They like write it in all caps: skill.md. File. That's going to be your prompt, your set of instructions. Now, the difference between the, um, a general set of instructions and open language set of instructions in a skill is it actually has some structured content in it that you need to know about when you're creating a Claude skill. So the first thing you need to know about is the metadata, and this is just a piece at the top of your skill file that you put in in this particular format. That gives you the name of the skill. So you know what it's named and a description, what it does. So this is going to help the agent in Claude actually know when to call this skill. The second thing that you're going to have in that file is instructions. So this is where all your prompt engineering skills need to come into play. You would put your prompt instructions, custom things in Markdown, in Markdown formatting. Which AI is very good at generating, in the body of the, the Markdown file. So at the top you have your metadata, and then you have your prompt instructions, and then there is resources and other code that can be referenced from that skill.md main instruction. And the way you're going to do that is actually give the content a relative link to that file. So little ./filename or ./foldername with the file name. If you don't know how to define relative file structure for code, again, good news, AI is very good at that, and we'll give you some examples when we generate AI code. But you can reference folders next to the agent's, agent's markdown file, and you can also reference Other files. So again, your skill.md is going to be your master prompt, and then you can reference other files in which you can put additional context that will be called as necessary by the skill. And then again, as I said, you're either going to put this in a place where Cloud Code can use it, or you're going to zip this up and create a skill in, in the web app. So I wanted to create my first skill and Anthropic in their launch documents actually said that there is a create skill skill inside Claude. So I couldn't really find it, but I just guessed that if I went into a chat, I could ask Claude.ai to actually create a skill for me. And so I just went in here and wrote in the Claude web app, help me create skills. And it does say that skills in this context are specialized instruction sets that help me perform tasks more effectively. So it seemed to me. Like, it does have a specialized meta skill inside loaded in Claude that can help you build skills. And I'm just going to walk you through the chat because there were some interesting experiences actually trying to build a skill in Claude. And Anthropic, again, I love you, but ran into some sharp edges. And I'm going to show you the way I'm really generating skills in, in, um, for Claude. And so I asked it to create skills, and on brand, I asked it to create a PRD generation And so what was interesting about watching this, uh, Claude code skill to create skills— very meta— generate is it did seem to go through a pretty structured workflow. So it gave me a sense of how these Claude agents actually think about using skills. It read an example skill, which I'm presuming is in the instructions of the skill itself. It looked at detailed examples, and then it kind of understood what it needed to do, and it created this skill.md with again the metadata at the top. I'm actually going to switch into markdown view so you can see exactly what it's supposed to look like. Has the metadata on top and then a set of instructions here. Now something I learned from the Claude skill generator is, man alive, are these instructions quite detailed. So Even if you don't end up using this flow in Claude to create your skills, and I'll show you what I did elsewhere, which is a little bit more efficient, you can see the outline of what it thinks a good skill is. So it includes when to use the skill, what is a decision tree on, on different types of decisions it needs to make about executing the skill, what's the template that it might follow when creating a document, which is quite long actually, writing best practices, all those sorts of things. And then it gave a couple example PRD formats for the skill to choose from. So you can be very prescriptive about what a skill does, or you can be more general purpose or give it a lot of options. That's something that I noticed about skills. And then finally, it gave some questions to ask users. So this is something interesting I wouldn't have put in my own prompt if I hadn't seen it. In this skill generator, but putting questions that the agent can actually ask users to get more clarifying detail is very interesting. Output format, so being very prescriptive about the output of the skill itself. And then it gives a bunch of examples. And you can see at the bottom 2 things that I thought were interesting that I'm unsure if they're used, but very curious, is keywords. So I'm presuming these are keywords that invoke the skill itself, something again that I wouldn't have thought of when writing the prompt but is very useful. And then additional resources, it's really linking to the example documents that it's going to create as that additional context. And so this is a really good example of how to write a good Claude skill. So even if you don't actually use this flow, it's worth generating just one to give you a good idea of what it takes to build a great Claude skill. And then what— where it kind of went off the rails is it created the core skill, it created a license file which I didn't really want, it created a quick reference guide which is not really used, it created a bunch of example files, it checked the file sizes. Like, I think the challenge with using this tool, or at least my experience of using this tool in Claude AI, is it did a lot of unnecessary work that kept me from actually Using the skill. So it created probably, um, let's see, 1, 2, 3, 4, 5, 6, 7, 8, 12 files. It created 12 files when I really only needed 5. And then the crummy thing is when I actually tried to download the files, it failed. It failed. I got an error. And so I would have had to download these files one by one. And put them in a folder and upload them in a zip to get them to be, to be effective files. So I think this flow using Claude.ai to generate a skill was interesting to figure out how the system is prompted to generate a good skill, but I wouldn't say it was the most effective way to create a skill itself. So what was a better way to create Claude skills? Well, I'll tell you, I found that creating Claude skills in Cursor was the easiest way to get this stuff done. And so what I did is I created a completely empty folder in my local machine. I opened up that folder. It's called Claude Skills. I opened up that folder in Cursor and I started a chat that said, create me an agent/skill for creating Claude skills. Here are the docs. So instead of relying on the Claude skill itself that Anthropic put out, I just literally gave Cursor the link to the documentation about what the structure of a skill looks like and asked it to create a skill to create skills. I will say this was much faster than creating it on Claude on the web app. It took probably 3 minutes, where I think the web app took probably 10 minutes to generate, and I didn't get the files. And it created this nice little to-do, and you can see again it's following the instructions for creating good styles. So Create the main skill.md file, create example skills, create template files and a validation script. And you can see all of this was put in a create skill folder over here and the skill followed again that YAML formatting with the metadata at the top, the instructions in the body. It was a little shorter than what Claude generated with its skills user and it did link and reference other files. And you can see those template files were generated in a really nice way. One of the interesting things that Cursor did when creating a skill for me that I was actually surprised about is it created a skill validation script. And so again, this is just an example of how you can use Python within your skills is you can actually, as part of your skill development, ask it to run a Python script. This one is a kind of funny one where it checks the YAML validation and the file formatting and if a file exists and does little content, uh, content validation. So this was an interesting meta use of the Python script calling ability, but it works. It was useful. And so this just a few, just a few minutes, and now I have this lovely create Skill folder that Claude can use. Now, how do we actually use that? So I'm now happy I have my Claude skill set up. Well, what I really did to actually use the skill is I fired up Claude Code. So as I said, these skills are available in Claude Code, Claude Desktop, the web app, as well as in the API, although we're not going to go into the API today. And so I thought, Because these files are local on my desktop, that I could just use Claude Code to call these skills. And I really wanted to see if I just fired up, typed Claude in this directory and called the skill, if it would just call it. And it did. So you can see the first prompt I put into Claude Code is use the create skill skill to create a skill. This is, you know, say that 3 times fast. For turning changelog entries into a user-facing newsletter. So this is something that I do every week for ChatPRD. I take all of our technically generated changelog entries and I write a user-facing newsletter that goes out to all of our subscribers. And something that follows a very specific format has a very specific input, very specific output. I thought it'd be great for a Claude skill. So Claude Code picked up that skill right away, which is really nice, and helped me create a skill for turning changelog entries into user-facing Newsletter. So it's going through the repository or the folder. It's looking for where the skills exist. And it found my create skill markdown file. It read it and it understands the structure of creating a skill. And then it went ahead and created a directory for my changelog to newsletter skill, wrote the content in the right format, validated the skill with that Python script. And then gave me a summary. And this skill is much simpler than the skill I generated before. As you can see, it's a single file. It has the metadata at top, and then it has a long set of instructions. So again, you don't have to use all these linked files and folders when you're creating skills. You can really put in a good prompt and have that be that. But now I have another skill in this Claude Skills folder, a repository generated by my meta create skills skill. And then what I did once that skill was generated is I actually called it. And what was really fun about using this is you don't have to use like a magic, a magic word. You don't have to say like invoke the Claude skill to do A, B, and C. You can literally, I said, okay, here's the latest changelog. So The only keyword it had was changelog. And with that context, the Claude agent was able to take my changelog and say, I'm going to take this technical changelog and turn it into an engaging newsletter. So I didn't say turn it into a newsletter. I didn't say use the skill. I literally just said, here's a changelog, and it inferred what I wanted based on the skills available in my folder. And wrote an update for our October 2025 product updates. Now, looking at this, what's interesting is I would look at this and I would go, maybe my, my skill is a little too emoji heavy. And I would revise the skill over and over and over again to make sure it follows the format and structure that I want for the, um, the task at hand. But at the end of the day, this took me 3 minutes to create the skill and probably 1 minute to generate the newsletter. And now I have a skill that I can use all the time. And just thinking for through other skills I might generate, I could do something like create a skill to turn customer demos into follow-up emails for trial prospects. What Claude Code is going to do now is it's again going to invoke that skill creator skill. It's going to create a new skill over here. In the left hand, which you see already, demo to follow up. It'll put the instructions in and ready to go. So for anybody that's trying to get started with Claude skills, this is the flow that I would recommend. Create a folder that you can go into on your computer. Make it your Claude skills repository. If you want to get fancy and deploy it to GitHub, you can. Maybe I'll deploy this one to GitHub and share it with you all. Create a skill to create a skill. Or maybe I'll again share this with you all and you can clone my skill and then just ask Claude Code to make your skills. And then whenever you're in Claude Code in this, you know, folder, what you can do is invoke those skills to do a variety of tasks that you think are really important and improve the quality of those tasks over time. So that's the really simple guide to creating Claude skills in Cursor. So let's see. It's thinking about it. It's taking 74 seconds. We'll wait 1 minute and see what comes back for our demo to follow-up skill. Okay, so about 3— again, I think these just take 3 minutes. 3 minutes later, it wrote this demo to follow-up skill, which we can see up here, that transfers customer demo notes into personalized follow-up emails. It's running the Python validation script on that skill, which again, I think it's a little bit overkill, but you know, you do you, Claude. And now I have again another skill here in my folder that I can invoke at any time. So that's how in about 3 minutes, the little creative editing, you can get another skill for Claude Skills. Now the last thing I want to show you is how you actually get those into the web UI or the desktop app, which I know a lot of you are using. And so again, as I said, these are zipped up files that you need to upload into Claude. So what you would do is go into your Finder or into your file browser in your desktop. You would zip up this file as you need into a zip, and then I'm gonna— I actually haven't done this before, so we're doing it live. You would upload that skill into the capabilities. Well, this didn't work because my skill name can only contain lowercase letters, so I'm going to try that again. It seems like the skill names need to be hyphenated little guys in here, so we're going to just do this one more time. I'm going to save this. I'm going to update my skill to write skills. And let's try this again. Okay, so I'm going to zip this. I'm going to try to upload this, um, demo to follow-up skill in the Claude UI. Bravo, I did it! Okay, so I gotta update my thing, and now I can transform customer demo notes into a personalized follow-up email. I can then use that skill now into my chat, and so You can see here that I just added the skill. Good job, Anthropic, doing that nice little seamless workflow into the chat. It's going to read that skill. It's probably going to ask me for some notes, and then I can take my latest ChatPRD demo and drop it right into Claude for it to create a follow-up email on my behalf. So that is our first mini episode on Claude skills. I talked about what Claude skills are, how they are differentiated against other ways you can provide context in your app. How to try to create Claude skills using Claude, which is not my favorite. How to actually create Claude skills using Cursor, which is my favorite. And then how to invoke those skills using Claude Code or the Claude web app by uploading them as a zip file. If you like content like this, let us know. We're going to do deep dives on how to use some of the newest capabilities in these AI products. I'll share some of how I AI in my day-to-day, and we will get you the best workflows in AI to improve your work life and your personal life. Thank you so much for joining How I AI, and we'll talk to you soon. Thanks so much for watching. If you enjoyed this show, please like and subscribe here on YouTube, or even better, leave us a comment with your thoughts. You can also find this podcast on Apple Podcasts, Spotify, or your favorite podcast Please consider leaving us a rating and review, which will help others find the show. You can see all our episodes and learn more about the show at howiaipod.com. See you next time.
More from Lenny


How Meta designed Muse: an AI agent people actually want to talk to | Alex Cornell (Design Director)


Why every company now needs to think and operate like a lab team | Josh Woodward (Google Labs, Gemini, AI Studio)


Jev: 8 real use cases for the fastest, cheapest model I’ve ever used | John Lindquist


The grief, loneliness, and burnout sweeping through the tech industry right now | Molly Graham






