Skip to content

How to Create a Claude Skill: A Step-by-Step Guide

TL;DR

– A Claude Skill is a folder with a SKILL.md file that tells Claude how to do a specific task

– To create one, write frontmatter (a name and a clear description), then the instructions, and add scripts or reference files if needed

– Drop the folder in your skills directory (~/.claude/skills for personal, .claude/skills for a project) and Claude loads it when a task matches

– Keep each skill to one job, and package related skills into a plugin to share them with your team

To create a Claude Skill, make a folder with a SKILL.md file inside it. Give that file a name and a clear description in the frontmatter, write the instructions Claude should follow, then add any scripts or reference files the task needs. Drop the folder in your skills directory and Claude loads it automatically when a task matches. In short, a skill is:

  • a folder named after the skill
  • a SKILL.md with frontmatter (name, description) and instructions
  • optional scripts and reference files it can call

This guide is about authoring a skill from scratch.

If you only want to install and run existing ones, see how to use Claude Skills instead.

For ready-made examples, browse the best Claude Skills.

LGM Claude Skills
Run your full GTM with Claude Skills
Reusable, open-source LGM Skills for Claude Code — from sourcing leads to closing pipeline.
Explore the Skills →

Anatomy of a Claude Skill

A skill is just a directory. The only required file is SKILL.md. Everything else is optional and loaded on demand, which keeps the skill light until Claude actually needs it.

A typical skill looks like this:

changelog-writer/
  SKILL.md
  scripts/
    collect_prs.sh
  references/
    format.md

SKILL.md holds the frontmatter and the instructions.

The scripts folder holds code the skill can run and references holds longer docs Claude reads only when the task calls for them.

This is progressive disclosure:

  • Claude always sees the name and description
  • reads the body when the skill triggers
  • and opens the extra files only when it needs them
Anatomy of a Claude Skill: the SKILL.md file, the frontmatter, and optional scripts and resources

A skill can hold more than instructions. Beyond SKILL.md, it can bundle scripts it runs, reference docs loaded only when needed, and assets it outputs.

To see how real skills are architected, browse our open GTM skills on GitHub.

What a Claude Skill can contain: SKILL.md, a scripts folder, a references folder, and an assets folder

Let Claude build the skill for you

You do not have to write every skill by hand. Anthropic ships a native skill called skill-creator.

Enable it in Claude, run /skill-creator and describe what you want.

Claude scaffolds the folder, the SKILL.md and the frontmatter for you, right in the conversation. It is the fastest way to start, and you can refine the result with the steps below.

Step 1: Create the folder and SKILL.md

Make a folder named after your skill, in kebab-case and add an empty SKILL.md inside. The folder name is the skill’s identifier, so keep it short and descriptive, like changelog-writer or won-deal-icp-finder.

Step 2: Write the frontmatter

At the top of SKILL.md, add YAML frontmatter with two required fields: name and description.

---
name: changelog-writer
description: Draft a release changelog from merged PRs. Use when the user asks for a changelog or release notes.
---

The description is the most important line you will write. Claude reads it to decide whether to trigger the skill, so say plainly what the skill does and when to use it. A vague description means the skill never fires, a precise one means it fires at the right moment.

Step 3: Write the instructions

Below the frontmatter, write what Claude should do, in plain Markdown. Treat it like onboarding a new teammate: clear steps, not clever prose.

# Changelog Writer

When asked for a changelog:
1. Run `scripts/collect_prs.sh` to gather merged PRs since the last tag.
2. Group entries into Features, Fixes, and Chores.
3. Write the result as Markdown, newest first.

Keep each skill focused on a single task. If the instructions start covering two jobs, split them into two skills. Push long material, like a style guide or a schema, into references files and point to them from the body, so the main instructions stay short.

Step 4: Add scripts and resources

If the task needs real work done, not just guidance, add scripts. A script is any executable the skill can call, and Claude runs it instead of reinventing the logic each time.

#!/usr/bin/env bash
# scripts/collect_prs.sh — list merged PRs since the last git tag
last_tag=$(git describe --tags --abbrev=0)
git log "$last_tag"..HEAD --merges --pretty="- %s"

Reference the script from the instructions by its relative path. Resources work the same way: a references/format.md with your exact changelog format, loaded only when needed.

Create a Claude Skill in four steps: create the folder, write SKILL.md, add scripts, then test and install

Step 5: Test and install it

Place the folder in your skills directory: ~/.claude/skills/ for a personal skill, or .claude/skills/ in a repo for one your team shares. Then ask Claude to do the task in plain language and check that the skill triggers and follows your steps. Tighten the description if it fires at the wrong time.

For the full install and invoke flow, see how to use Claude Skills.

La Growth Machine - Claude Skills
Your full GTM stack, as Claude Skills
Reusable skills for Claude Code, built from real LGM campaigns. From sourcing leads to closing pipeline — open-source and ready to run.
Explore LGM Skills → Open-source · Works with Claude Code
LGM Skills · GTM library
/multichannel-campaign-builder
/reply-manager
/won-deal-icp-finder
Open-source · MIT licensed

Best practices and common mistakes

A few rules keep skills reliable.

  • One skill, one job: Focused skills trigger predictably. Broad ones fire at the wrong time.
  • Write the description for the trigger: Name what it does and when to use it, in the user’s words.
  • Use progressive disclosure: Keep SKILL.md short and move detail into reference files.
  • Never hardcode secrets: Keep API keys and tokens out of the files, and read them from the environment.
  • Let skills call each other: Well-scoped skills compose, so one can hand off to another instead of duplicating logic.

Prospecting skills you could build

Sales is a natural fit, because outreach is full of repeatable, well-defined tasks. Some of these we have built, and some are easy to add:

  • ICP finder. Read your closed-won deals and surface the profile that actually converts, like our Won-Deal ICP Finder.
  • Search builder. Turn an ICP into a ready Sales Navigator search, the way our Sales Nav Search Builder does.
  • Sequence writer. Draft a full multichannel campaign from a one-line brief, like the Multichannel Campaign Builder.
  • Reply handler. Classify inbound replies and draft the right response, like our Reply Manager.
  • Account researcher. Pull recent funding, hiring, and news signals for a list of accounts, then write a personalized hook for each.
  • Opener writer. Generate a first line grounded in a real signal instead of a template.
  • List cleaner. Dedupe contacts, validate emails, and flag missing fields before a launch.
  • Campaign scorer. Rank active campaigns by pipeline rather than reply rate, like the Campaign Impact Analyzer.

Build each as a small, single-purpose skill, and they chain into a full prospecting workflow.

Package and share your skill

Once a skill works, you can distribute it. Bundle related skills, scripts, and even an MCP server into a plugin, then publish it through the Claude plugins marketplace so your whole team installs the set in one command.

Pair your skills with the tools they act on by connecting an MCP to Claude Code, and the skill stops being advice and starts doing the work.

This is how we built the La Growth Machine GTM skills: small, single-purpose skills that chain into full outreach workflows.

Frequently asked questions

How do I create a Claude Skill?

Make a folder with a SKILL.md file, add frontmatter with a name and description, write the instructions, and add any scripts or reference files. Put the folder in your skills directory and Claude loads it when a task matches.

Is there a faster way to create a skill?

Yes. Anthropic ships a native skill-creator skill. Enable it in Claude and run /skill-creator, then describe what you want, and Claude scaffolds the folder, SKILL.md, and frontmatter for you.

What goes in the SKILL.md frontmatter?

Two required fields: name and description. The description is what Claude reads to decide when to trigger the skill, so make it specific about what the skill does and when to use it.

Where do I put a Claude Skill to install it?

In ~/.claude/skills/ for a personal skill, or in .claude/skills/ inside a repository for one your team shares.

Can a Claude Skill run code?

Yes. Add scripts to the skill folder and reference them from the instructions. Claude runs the script instead of regenerating the logic each time.

Where can I find Claude skill examples?

Browse the best Claude Skills for ready-made examples, or the GTM skills library for sales and outreach ones.

Most outreach runs blind.
La Growth Machine fixes that.

Multichannel sequences, a native MCP server for LLMs and a Skills library for GTM teams.

Discover La Growth Machine
Discover La Growth Machine