- Users can create custom "skills" for Claude Code by defining a
skill.mdfile, enabling the AI to perform specific tasks like generating PR descriptions or explaining code visually. - Claude Code loads skill names and descriptions at startup, then matches incoming user requests to these descriptions, always asking for confirmation before executing a matched skill's full instructions.
- A clear priority system (Enterprise > Personal > Project > Plugins) resolves conflicts when multiple skills have similar names or intents, ensuring proper behavior and organizational compliance.
Creating your first skill
- To create a Claude Code skill, make a dedicated directory containing a
skill.mdfile that specifies the skill's name, descriptive matching criteria, and execution instructions. - Claude Code loads only skill names and descriptions at startup; a restart of your session is required for newly created or updated skills to become active.
- When a user makes a request, Claude compares it to available skill descriptions, and upon finding a match, prompts for confirmation before fully loading and executing the skill's content.
- A hierarchical priority system dictates which skill is used in case of name or intent overlap: Enterprise skills override Personal, Personal override Project, and Project override Plugin skills.
- To avoid conflicts and ensure predictable behavior, use descriptive names for your skills, such as
front-end PR reviewinstead of a genericreview. - Update a skill by directly editing its
skill.mdfile; to remove one, simply delete its directory. Always restart Claude Code for these changes to take effect.
skill — A custom-defined set of instructions and metadata that extends Claude Code's capabilities, enabling it to perform specific tasks like generating code explanations or PR descriptions.
skill.md — The Markdown file that defines a Claude Code skill, containing its name, descriptive matching criteria, and operational instructions.
PR description skill — A specific type of skill designed to automatically generate descriptions for Pull Requests based on code changes, following a template.
matching criteria — The descriptive text within a skill's skill.md file that Claude uses to determine if a user's request should activate that particular skill.
skill priority — A predefined hierarchical order (Enterprise > Personal > Project > Plugins) that determines which skill is used when multiple skills with similar names or intents are available.
enterprise skill — A skill managed at an organizational level, typically enforced through centralized settings, which takes precedence over other skill types.
personal skill — A skill created by an individual user for their own customization of Claude Code, usually stored in their home directory.
project skill — A skill defined within a specific code repository (e.g., in a .claude directory), relevant only to that particular project.
plugin skill — A skill obtained from an external source or installed as a plugin, typically having the lowest priority in the skill hierarchy.
So, let's create a skill. This skill will teach Claude how we would like it to explain code using visual diagrams and analogies. [music] Then, we'll look at what happens under the hood when Claude uses it. First, [music] let's create a directory for your skill. We're going to be making a personal skill, so it'll live in many projects, so it will go in your home directory. Take into consideration that we're creating a directory with the skill name inside of the skills directory. Now create the skill. The name identifies your skill. The description tells Claude when to use it. This is the matching criteria. And then everything after the second dashes is the instructions that Claude follows. Claude Code loads skills at startup. So restart your session. Then verify it's available. You should see PR description in the list. Now test it. Make some changes on a branch and say, "Write a PR description for my changes." Claude will then show you that it's using the PR description skill. After that, it'll check your diff and write a description following your template. Same format every single time. When Claude Code starts, it scans four locations for skills. Enterprise paths, your personal Claude skills, the project's Claude skills, and installed plugins. It loads only the name and description of each skill, not the full content. This is important later. When you send a request, Claude compares it to the descriptions of your skills. Explain what this function does matches a skill described as explain code with visual diagrams because the intent overlaps. It will then ask you to confirm loading up the skill. This confirmation step keeps you aware of what context Claude is using. After you confirm, Claude reads the complete file and follows its instructions. Now, let's say you clone a Git repository and have an overlapping skill name. Well, which one wins? Here's the priority list. The highest is enterprise, which lives in the manage settings. Two is the personal, which lives in your root directory configuration like we're doing right now. Three is the project which is the claw directory inside of your repository. And the lowest is the plugins where you store your plugins that you got online. This lets organizations enforce standards while allowing individual customization through differently named skills. If your company has an enterprise code review skill and you create a personal code review skill, the enterprise version of that takes precedence. To avoid conflicts, use descriptive names. Instead of review, use front-end PR review or security review. To update a skill, edit it skill.md file. Simple. To remove one, delete its directory. Restart clock code after changes for them to take effect. Creating a skill means making a directory with a skill.md file containing metadata and instructions. Claude loads skill names and descriptions at startup. matches incoming requests against those descriptions and asks for confirmation before loading the full content. Priority rules handling name conflicts. Enterprise overrides personal personal overrides project overrides plugins. [music] Edit the skill.md file to update a skill and restart Claude Code for changes to take effect.
TL;DR
- Users can create custom "skills" for Claude Code by defining a
skill.mdfile, enabling the AI to perform specific tasks like generating PR descriptions or explaining code visually. - Claude Code loads skill names and descriptions at startup, then matches incoming user requests to these descriptions, always asking for confirmation before executing a matched skill's full instructions.
- A clear priority system (Enterprise > Personal > Project > Plugins) resolves conflicts when multiple skills have similar names or intents, ensuring proper behavior and organizational compliance.
Takeaways
- To create a Claude Code skill, make a dedicated directory containing a
skill.mdfile that specifies the skill's name, descriptive matching criteria, and execution instructions. - Claude Code loads only skill names and descriptions at startup; a restart of your session is required for newly created or updated skills to become active.
- When a user makes a request, Claude compares it to available skill descriptions, and upon finding a match, prompts for confirmation before fully loading and executing the skill's content.
- A hierarchical priority system dictates which skill is used in case of name or intent overlap: Enterprise skills override Personal, Personal override Project, and Project override Plugin skills.
- To avoid conflicts and ensure predictable behavior, use descriptive names for your skills, such as
front-end PR reviewinstead of a genericreview. - Update a skill by directly editing its
skill.mdfile; to remove one, simply delete its directory. Always restart Claude Code for these changes to take effect.
Vocabulary
skill — A custom-defined set of instructions and metadata that extends Claude Code's capabilities, enabling it to perform specific tasks like generating code explanations or PR descriptions.
skill.md — The Markdown file that defines a Claude Code skill, containing its name, descriptive matching criteria, and operational instructions.
PR description skill — A specific type of skill designed to automatically generate descriptions for Pull Requests based on code changes, following a template.
matching criteria — The descriptive text within a skill's skill.md file that Claude uses to determine if a user's request should activate that particular skill.
skill priority — A predefined hierarchical order (Enterprise > Personal > Project > Plugins) that determines which skill is used when multiple skills with similar names or intents are available.
enterprise skill — A skill managed at an organizational level, typically enforced through centralized settings, which takes precedence over other skill types.
personal skill — A skill created by an individual user for their own customization of Claude Code, usually stored in their home directory.
project skill — A skill defined within a specific code repository (e.g., in a .claude directory), relevant only to that particular project.
plugin skill — A skill obtained from an external source or installed as a plugin, typically having the lowest priority in the skill hierarchy.
Transcript
So, let's create a skill. This skill will teach Claude how we would like it to explain code using visual diagrams and analogies. [music] Then, we'll look at what happens under the hood when Claude uses it. First, [music] let's create a directory for your skill. We're going to be making a personal skill, so it'll live in many projects, so it will go in your home directory. Take into consideration that we're creating a directory with the skill name inside of the skills directory. Now create the skill. The name identifies your skill. The description tells Claude when to use it. This is the matching criteria. And then everything after the second dashes is the instructions that Claude follows. Claude Code loads skills at startup. So restart your session. Then verify it's available. You should see PR description in the list. Now test it. Make some changes on a branch and say, "Write a PR description for my changes." Claude will then show you that it's using the PR description skill. After that, it'll check your diff and write a description following your template. Same format every single time. When Claude Code starts, it scans four locations for skills. Enterprise paths, your personal Claude skills, the project's Claude skills, and installed plugins. It loads only the name and description of each skill, not the full content. This is important later. When you send a request, Claude compares it to the descriptions of your skills. Explain what this function does matches a skill described as explain code with visual diagrams because the intent overlaps. It will then ask you to confirm loading up the skill. This confirmation step keeps you aware of what context Claude is using. After you confirm, Claude reads the complete file and follows its instructions. Now, let's say you clone a Git repository and have an overlapping skill name. Well, which one wins? Here's the priority list. The highest is enterprise, which lives in the manage settings. Two is the personal, which lives in your root directory configuration like we're doing right now. Three is the project which is the claw directory inside of your repository. And the lowest is the plugins where you store your plugins that you got online. This lets organizations enforce standards while allowing individual customization through differently named skills. If your company has an enterprise code review skill and you create a personal code review skill, the enterprise version of that takes precedence. To avoid conflicts, use descriptive names. Instead of review, use front-end PR review or security review. To update a skill, edit it skill.md file. Simple. To remove one, delete its directory. Restart clock code after changes for them to take effect. Creating a skill means making a directory with a skill.md file containing metadata and instructions. Claude loads skill names and descriptions at startup. matches incoming requests against those descriptions and asks for confirmation before loading the full content. Priority rules handling name conflicts. Enterprise overrides personal personal overrides project overrides plugins. [music] Edit the skill.md file to update a skill and restart Claude Code for changes to take effect.