Skip to content

What are Skills?

MCP bundles give agents the ability to do things. Skills give agents the knowledge to think about things. They’re two sides of the same coin.

Consider what makes a great code reviewer:

They NeedHow They Get It
Ability to read filesMCP server with read_file tool
Ability to search codeMCP server with grep tool
Knowledge of what to look forA skill
Understanding of security patternsA skill
Judgment about code qualityA skill

Tools let an agent take actions. Skills teach an agent how to think.

A skill is a markdown file with instructions:

---
name: code-reviewer
description: Expert code review with security and performance focus
metadata:
triggers:
- "review this code"
- "check for bugs"
---
# Code Review Process
When reviewing code, follow this process:
## 1. Understand Context
- What does this code do?
- What problem is it solving?
- Who wrote it and why?
## 2. Check for Security Issues
Look for these common vulnerabilities:
### SQL Injection
Bad:
\`\`\`python
query = f"SELECT * FROM users WHERE id = {user_id}"
\`\`\`
Good:
\`\`\`python
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
\`\`\`
### XSS (Cross-Site Scripting)
...
## 3. Check for Performance
- N+1 queries
- Unnecessary allocations
- Missing indexes
...

When you ask Claude to “review this code,” it applies this skill and follows the structured approach.

Without skills, AI assistants are generalists. They know a little about everything but aren’t experts at anything.

With skills:

You: "Review this authentication code"
Claude (with code-reviewer skill):
"I'll review this using a structured security-focused approach.
1. **Authentication Flow Analysis**
- Login endpoint accepts username/password
- No rate limiting detected (SECURITY ISSUE)
2. **Password Handling**
- Using bcrypt for hashing (good)
- But timing attack vulnerability in comparison (line 47)
3. **Session Management**
- JWT tokens with 24h expiry
- No refresh token rotation (potential issue)
4. **Specific Recommendations**
..."

The skill turned a generic “looks fine” response into expert-level analysis.

Your best engineer’s code review checklist. Your security team’s penetration testing methodology. Your legal team’s contract review process. Skills capture this knowledge in a reusable form.

Without a skill, each interaction starts from scratch. With a skill, the agent applies the same rigorous process every time.

A skill you write can help thousands of people. Your security review checklist doesn’t just help your team, it helps everyone who installs your skill.

Claude Code loads skills from your project’s .claude/skills/ directory:

your-project/
└── .claude/
└── skills/
├── code-reviewer/
│ └── SKILL.md
└── api-designer/
└── SKILL.md

When you start Claude Code, it sees these skills and can apply them when relevant.

Skills define trigger phrases that tell Claude when to use them:

metadata:
triggers:
- "review this code"
- "check for bugs"
- "security review"

When you say something matching a trigger, Claude activates the skill.

Skills can specify which tools they need:

allowed-tools: Read Grep Bash

This tells Claude what capabilities the skill expects to have available.

You might think: “Can’t I just put this in a system prompt?”

System PromptsSkills
One big blob of instructionsModular, composable units
Always activeActivated when relevant
Hard to sharePackageable and distributable
No versioningVersioned and updatable
Clutters contextOnly loaded when needed

Skills are system prompts that got organized.

mpak hosts skills just like it hosts MCP bundles:

Terminal window
# Search for skills
mpak skill search "code review"
# See skill details
mpak skill show @nimblebraininc/code-reviewer

Anyone can publish skills. The best practices of experts become accessible to everyone.

  • Code review
  • Test writing
  • Documentation generation
  • API design
  • Refactoring patterns
  • Legal contract review
  • Medical literature analysis
  • Financial modeling
  • Scientific paper critique
  • Project planning
  • Technical writing
  • Interview preparation
  • Incident response

If there’s a domain where expertise matters, there’s a skill for it (or there should be).

A skill starts with what you already know:

  1. Pick a task you do well - What do people ask you for help with?
  2. Write down your process - What steps do you follow?
  3. Add examples - What does good output look like?
  4. Package it - Put it in a SKILL.md file

That’s it. Your expertise, made reusable.

Install a skill in your project:

Terminal window
mkdir -p .claude/skills/code-reviewer

Create .claude/skills/code-reviewer/SKILL.md:

---
name: code-reviewer
description: Thorough code review focusing on bugs and security
---
# Code Review
When asked to review code:
1. Read the code completely first
2. Check for common bugs (off-by-one, null checks, error handling)
3. Look for security issues (injection, XSS, auth problems)
4. Suggest improvements with specific line references

Now ask Claude Code to “review this code” and watch it follow your process.