In the previous unit, we explored the fundamentals of the Skills system: how Skills differ from custom commands, their file structure, and when to create them versus using CLAUDE.md. Now it is time to build something real.
In this lesson, we will move from theory to practice by creating two actual, functional Skills: a CSV analysis Skill and a visualization standards Skill. Along the way, we will learn how to write descriptions that help Claude select Skills automatically, how to define tool permissions properly, and how to verify that our Skills work as intended.
The best Skills solve real problems that occur regularly in actual projects. For this lesson, we focus on two such Skills:
- CSV Analyzer: Analyzes CSV data with summary statistics and insights — a common data analysis task
- Sci-Viz: Creates publication-ready scientific visualizations — essential for research papers
These differ from educational exercises like "convert strings to uppercase" or "add a fixed header to a file." Practical Skills embed domain knowledge and address recurring needs, which is exactly what makes them worth creating.
Let's create a Skill that analyzes and summarizes CSV data with statistical insights. We will place this Skill in the project-specific directory so it is available for all team members working on this project.
The Skill resides in a dedicated folder with a clear, descriptive name:
Every Skill starts with YAML frontmatter that provides metadata for Claude's selection system. Here is how we begin our CSV analysis Skill:
This frontmatter establishes three critical pieces of information. The name uniquely identifies this Skill, the description tells Claude when to use it, and allowed-tools specifies which capabilities this Skill can access. We will explore each of these fields in detail next.
The description field is perhaps the most important part of your Skill's frontmatter. This single line determines whether Claude will select your Skill when you make a request.
A good description should be:
- Specific about the task: Mention concrete actions like
analyze and generate summary statisticsrather than vague terms likeprocess data. - Rich in keywords: Include terms users might naturally use, such as
sales reports,analytics, andCSV. - Clear about scope: State what the Skill handles, making selection easier.
Compare these descriptions:
The strong description gives Claude multiple matching signals — analyze, summary statistics, sales reports, descriptive insights — so when a user asks "Analyze this sales CSV and give me insights," Claude can confidently select this Skill without being told.
The allowed-tools field applies the principle of least privilege: each Skill gets only the capabilities it needs to function. This provides both security and clarity.
For our CSV analysis Skill, we specify:
Each tool serves a clear purpose:
Read: Access the CSV file to analyze data.Bash: Run Python withpandasand statistical libraries.Write: Save analysis results to summary files.
Notice what we do not include: Edit (we are not modifying existing files, just creating summaries) or any web access tools (this is a local analysis task). Limiting tools to exactly what is needed makes the Skill both safer and easier to reason about.
After the frontmatter, the markdown body provides guidance for Claude. The complete CSV analyzer Skill includes:
The "When to Use" section helps Claude recognize appropriate situations, the "Process" section provides step-by-step instructions, and the "Example Output" shows the expected implementation pattern without overwhelming detail.
Now let's see this Skill in action. First, we ask Claude to create it:
Claude creates the complete Skill file with proper structure and frontmatter. When you first use a Skill, you will encounter an approval prompt:
For this course, select Option 2 to approve Skills for your practice directory without needing to re-approve each session.
Next, we test automatic selection with a relevant request:
Watch what Claude logs:
This confirms our Skill is functioning. Claude recognized that our request matched the csv-analyzer Skill and loaded it automatically — no explicit instruction needed. Claude then applies the Skill and generates results:
Let's reinforce these patterns with a second Skill in a different domain: enforcing matplotlib standards for scientific publications.
Claude creates a new Skill file:
Notice the different tool requirements: this Skill includes Edit (for modifying existing plots) alongside Write, Read, and Bash. The standards section encodes domain-specific knowledge, ensuring consistency without repeatedly explaining requirements.
Testing it with a relevant request:
Claude logs automatic selection:
Then applies all publication standards and confirms:
The Skill did not just create a plot — it ensured every publication standard was met automatically.
Now that we have created two complete Skills, let's distill the patterns that make them effective:
Focus on real workflows: Skills should address actual recurring needs, not artificial scenarios.
Write descriptive metadata: Rich descriptions with relevant keywords enable automatic selection.
Apply least privilege: Each Skill specifies only the tools it genuinely needs.
Provide clear procedures: Step-by-step process sections guide consistent execution.
Include concrete examples: Sample code gives Claude a clear starting point.
Test thoroughly: Verify that Claude selects your Skill automatically for relevant requests.
When you create your own Skills, follow these principles. Start with tasks you perform repeatedly, encode your domain knowledge clearly, and test that automatic selection works as expected.
In this lesson, we built two practical Skills: one for analyzing CSV data and another for enforcing visualization standards. Along the way, we learned how to write effective descriptions, define appropriate tool permissions, structure Skill bodies clearly, and verify automatic selection through Claude's logs.
Skills are most valuable when they encode specialized knowledge you use repeatedly. Whether it is CSV analysis, visualization standards, API testing patterns, or any other domain-specific workflow, Skills let you capture that expertise once and apply it consistently.
In the practice section ahead, you will create Skills tailored to your specific needs, experiment with different structures, and discover how powerful this extension system can be.
