Claude Skills explained: How to create reusable AI workflows

Claude Skills explained: How to create reusable AI workflows

How I AIOct 22, 202527m

Claire Vo (host)

What Claude Skills are and why they matterSkills vs Projects/Custom GPTs (dynamic, task-specific invocation)Skill folder anatomy: SKILL.md + resourcesMetadata (YAML), instructions, relative file referencesPython scripts for validation and consistencyWorkflow: Cursor for authoring, Claude Code for testingDeploying to claude.ai via zip + naming constraints

In this episode of How I AI, featuring Claire Vo, Claude Skills explained: How to create reusable AI workflows explores build reusable Claude workflows using Skills, Cursor, and Claude Code Claire Vo explains Anthropic’s new Claude Skills feature as a lightweight way to package reusable, task-specific instructions (and optional files/scripts) that Claude can invoke on demand.

Build reusable Claude workflows using Skills, Cursor, and Claude Code

Claire Vo explains Anthropic’s new Claude Skills feature as a lightweight way to package reusable, task-specific instructions (and optional files/scripts) that Claude can invoke on demand.

She clarifies that a “Skill” is essentially a folder containing a required SKILL.md (with metadata + instructions) plus optional referenced resources and executable Python scripts for validation or consistent logic.

After trying Claude’s built-in “create a skill” flow (which produced too many files and had download friction), she recommends a faster workflow: generate Skills in Cursor using the docs, then run and iterate them in Claude Code.

She demos creating and using two practical Skills (changelog→newsletter and demo notes→follow-up email), then shows how to zip and upload a Skill to the Claude web UI, noting naming constraints (lowercase/hyphenated).

Key Takeaways

Claude Skills enable on-demand, reusable AI workflows.

Instead of copying prompts from docs or relying on always-on project context, Skills let Claude pull in task-specific instructions when the conversation context calls for them.

Get the full analysis with uListen AI

A Skill is a folder, not a “magic agent object.”

The core asset is a folder containing SKILL. ...

Get the full analysis with uListen AI

Good Skills combine metadata + highly explicit instructions.

The YAML metadata (name/description) helps Claude choose when to use the Skill, while detailed instructions define the workflow, output format, and decision points.

Get the full analysis with uListen AI

Relative file references help manage context cleanly.

You can keep templates, examples, and extra guidance in adjacent files and link them (e. ...

Get the full analysis with uListen AI

Python scripts reduce variability and add guardrails.

Bundled scripts can validate formatting (e. ...

Get the full analysis with uListen AI

Claude’s built-in Skill creator is informative but can be inefficient.

It demonstrated what “thorough” Skills look like (decision trees, questions, examples), but it over-generated files and had friction downloading, making it less practical end-to-end.

Get the full analysis with uListen AI

Fastest loop: generate in Cursor, run in Claude Code, then upload.

Cursor can scaffold the Skill structure quickly from docs; Claude Code can discover and invoke Skills locally, enabling rapid iteration before packaging as a zip for the web/desktop app.

Get the full analysis with uListen AI

Notable Quotes

Claude Skills solves a really interesting problem for anybody using AI, which is reusable workflows with a set of instructions that you wanna call on demand.

Claire Vo

A Claude Skill, the actual object, the thing that you make, is a folder.

Claire Vo

My preference... is, you know what? If these models are so great at natural language, we should be able to define things in natural language.

Claire Vo

It created 12 files when I really only needed five.

Claire Vo

I just said, 'Okay, here's the latest changelog'... and it inferred what I wanted, based on the skills available in my folder.

Claire Vo

Questions Answered in This Episode

What heuristics does Claude use to decide when to invoke a Skill—metadata description only, keywords, or learned matching from examples?

Claire Vo explains Anthropic’s new Claude Skills feature as a lightweight way to package reusable, task-specific instructions (and optional files/scripts) that Claude can invoke on demand.

Get the full analysis with uListen AI

In your PRD Skill example, which parts are most essential (output format, questions, decision tree) versus “nice to have” for reliability?

She clarifies that a “Skill” is essentially a folder containing a required SKILL. ...

Get the full analysis with uListen AI

How do you prevent Skills from over-triggering when context is ambiguous (e.g., mentioning “changelog” in a different task)?

After trying Claude’s built-in “create a skill” flow (which produced too many files and had download friction), she recommends a faster workflow: generate Skills in Cursor using the docs, then run and iterate them in Claude Code.

Get the full analysis with uListen AI

What’s the best practice for organizing a larger “Skills repository” (naming, folder structure, versioning) once you have dozens of Skills?

She demos creating and using two practical Skills (changelog→newsletter and demo notes→follow-up email), then shows how to zip and upload a Skill to the Claude web UI, noting naming constraints (lowercase/hyphenated).

Get the full analysis with uListen AI

When does it make sense to move logic into a Python script versus keeping it purely in SKILL.md instructions?

Get the full analysis with uListen AI

Transcript Preview

Claire Vo

[upbeat music] 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 gonna 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 in to 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 gonna 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 wanna call on demand, depending on the context of your conversation. Now, many of you are gonna 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 and 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 [chuckles] 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 obs- 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 gonna 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, um, 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, [chuckles] 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, um, 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, um, including Claude, have sort of, um, code execution capabilities, when they're generating that code themselves, you can see that you get high variability in the, you know, 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 representat- representative of the code you want to write, is very, very useful. So that's 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, is, is a folder. Like, I, I don't feel we have been explicit enough in some of the documentation to talk about [chuckles] 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 gonna 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 [chuckles] and you upload it to the claude.ai website. So I just wanna- I, you know, I spent actually a good five minutes trying to figure out, like, what the hell is the asset of, of this skill? And, um, the actual asset is a markdown file, a set of other files and folders, either, um, 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 wanna 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 gonna 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 gonna be your prompt, your set of instructions. Now, the difference between the, um, a general set of instructions and open language set of instructions and 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 gonna help the agent in Claude actually know when to call this skill. The second thing that you're gonna 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 gonna do that is actually give the content a relative link to that file. So a little ./file name or ./folder name with the file name. Um, 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 agents, [lips smack] um, agents, uh, markdown file, and you can also reference other files. So again, your skill.md is gonna 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 gonna put this in a place where Claude Code can use it, or you're gonna 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. [lips smack] And so I just went in here and wrote, [chuckles] uh, in, 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 gonna 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 then I'm gonna 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 skill. 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 gonna 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, uh, 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 f- output of the skill itself, and then it gives a bunch of examples. And you can see at the bottom two 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 gonna 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, wh- 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, one, two, three, four, five, six, seven, eight, 12 files. It created 12 files when I really only needed five. And then the crummy thing is, when I actually tried to download the files, it, it failed. It failed. I got an error. And so I would've 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 a 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 three minutes, where I think the web app took probably ten 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 skills. 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 a little content, uh, content validation. So this was an interesting meta use of the Python, um, 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? Um, so I'm now happy, I have my Claude Skill set up. Well, what I really did to actually use this 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 gonna 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 three 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, and 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 a 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 or 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 w- or a magic word. You don't have to say, like, "Invoke the Claude skill to do A, B, and C," you can literally... [chuckles] 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 gonna 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 a 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 three minutes to create the skill and probably one 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 gonna do now is it's, again, gonna invoke that skill creator skill. It's gonna 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 wanna 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. Um, it's taking 74 seconds. We'll wait one minute and see what comes back for our demo to follow-up skill. Okay, so about three... Again, I think these just take three minutes. Three minutes [chuckles] later, it wrote this demo to follow-up skill, which we can see up here, um, 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 three minutes, with a little creative editing, you can get another skill for Claude Skills. Now, the last thing I wanna 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, um, 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. Um, 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. Um, 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 gonna try that again. Um, it seems like the skill names need to be hyphenated little guys in here, so we're gonna just do this one more time. I'm gonna save this. I'm gonna update my skill to write skills, and let's try this again. Okay, so I'm gonna zip this. I'm gonna 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, uh, workflow into the chat. It's gonna read that skill. It's probably gonna 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 gonna 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. [upbeat music] Thanks so much for watching. If you enjoyed the 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 app. 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!

Install uListen to search the full transcript and get AI-powered insights

Get Full Transcript

Get more from every podcast

AI summaries, searchable transcripts, and fact-checking. Free forever.

Add to Chrome