🔒

Workshop Access

Claude Code Skills

Enter the password to continue.

Skill Builder Edition · Claude Code Desktop App

Skills in
Claude Code

Build expert skills conversationally — describe what you want, the skill builder writes the file. No code, no terminal required.

Get Started
01 — Concept

What Is a Skill?

A skill is a plain Markdown file called SKILL.md stored in a folder. Before Claude starts a task, it scans skill descriptions to decide if one is relevant — then reads the full file to get expert instructions.

description (frontmatter)

Tells Claude when to apply the skill. Written like a job trigger — specific verbs, clear scope. This is the only part Claude reads when deciding whether to load the skill.

body (markdown)

Tells Claude how to do the task well. Include tone rules, structure requirements, examples, and anything you'd put in a style guide or job description.

Any task, any format

Skills work for emails, code reviews, meeting notes, changelogs, presentations — anything you ask Claude to do repeatedly. If you repeat it, write a skill for it.

💡

Think of it like handing Claude a job description before it starts work. The description field is the trigger logic. The rest of the file is the expert guidance. Write the description with specific verbs and a clear scope.

02 — How it works

How Claude Decides to Use a Skill

Every time you give Claude a task, it runs through this four-step process automatically.

💬
Step 1

User Prompt

"Write an email to a client…"

🔍
Step 2

Scan Descriptions

Reads description fields from all skills

📄
Step 3

Load SKILL.md

Reads the full file for best practices

Step 4

Execute Task

Applies your expert guidance

03 — Structure

Anatomy of a SKILL.md

Every skill file has the same structure: a YAML frontmatter block that triggers the skill, followed by the expert instructions.

email-writer/SKILL.md
--- name: email-writer description: "Use this skill whenever the user asks to write, draft, or compose a professional email, follow up, or reply to an email." --- # Email Writer Skill ## Tone & Voice - Clear, concise, professional - Avoid jargon and filler phrases ## Structure 1. Subject line (specific + action) 2. Opening — one sentence, no filler 3. Body — max 4 short paragraphs 4. ONE clear ask at the end 5. Sign-off: "Best," ## Example **Subject:** Project update — new date: March 15 Hi Sarah, We're running one week behind on the dashboard redesign due to an API delay. New delivery date is March 15. Could you confirm this works for your team? Best, [Your name]

name

Short identifier for the skill. Used in logs when Claude loads it.

description

This triggers the skill. Claude reads only this field to decide whether to load the rest of the file. Write it with specific verbs and clear scope.

Instructions

Tone, rules, structure — the expert guidance Claude follows when executing the task. Use headers, bullet points, numbered lists.

Example (optional)

Optional but powerful — shows Claude exactly what good output looks like. One concrete example beats three paragraphs of rules.

04 — Setup

Enable the Skill Builder

The skill-creator is a built-in Anthropic skill that turns Claude into an interactive skill designer. Enable it once and you're ready to build any skill conversationally — no files or folders to manage.

🛠️
What the skill builder does for you

Writes the frontmatter trigger correctly · Structures rules and examples in proven patterns · Asks clarifying questions to sharpen the skill · Saves the finished SKILL.md to your skills folder automatically · Can run quick evals to verify the skill triggers as expected.

1

Open Customize > Skills in the desktop app

Claude Code Desktop App
  1. Click the gear icon or open Customize in the left sidebar.
  2. Select Skills from the submenu.
  3. You'll see a list of available skills — built-in Anthropic skills are shown at the top.
2

Toggle skill-creator on

Locate skill-creator in the Anthropic skills section. Click its toggle switch — it turns teal when active. The skill is now available in every chat window.

💡
While you're here

Also enable docx, pptx, xlsx, and pdf if they're not already active — you'll use them in Stage 2.

3

Verify it's active

Open a new chat window in Claude Code and type:

Claude Code chat
/skills

You should see skill-creator listed. You're ready — no terminal, no files to create.

05 — Workshop

Workshop Stages

Four stages, basic to advanced. Each one uses the skill builder — you just describe what you want and Claude writes the skill.

Setup · Before You Start

Install Claude Code

Step-by-step installation for Windows & macOS — Node.js, npm, Claude Code, and API key setup.

↗ Setup Guide
Stage 1 · Basic

Email Writer

Build your first skill: professional client emails with specific subject lines, no filler opener, one clear ask, and a consistent sign-off.

⏱ ~10 min
Stage 2 · Built-in

Document Skills

Enable built-in docx, pptx, and pdf skills. Live demo comparing output with and without each skill.

⏱ ~10 min
Stage 3 · Custom

Build Any Skill

The general five-step loop: pick a task, invoke the builder, refine in conversation, confirm, test. Works for meeting notes, code reviews, changelogs, tickets — anything repeating.

⏱ ~10 min
Stage 3b · Intermediate

Sharpen Your Skill

Tighten the trigger, add negative rules and conditionals, then run a deliberate eval — four upgrades that make any skill measurably better.

⏱ ~15 min
Stage 3d · Hand-Edit

Edit SKILL.md by Hand

Open the raw SKILL.md file in a text editor, tweak the frontmatter and body manually, then sideload it into the Claude Desktop app via Settings → Capabilities → Skills.

⏱ ~10 min
Stage 4 · Advanced

Game-Making Skill

Use the skill builder to generate a full retro-shooter expert skill — canvas patterns, delta-time loop, chiptune audio, wave logic — then build a game with it immediately.

⏱ ~15 min
🛠 Skill Builder
Stage 1

Email Writer — Your First Skill

One prompt to the skill builder is all it takes. Here's the full flow.

1

Invoke the skill builder

Open a new chat in Claude Code and paste this prompt:

Prompt — invoke the skill builder

"Use the skill builder to create an email-writer skill. It should write professional client emails: specific subject line, no filler opener, max 200 words, one clear ask at the end, sign-off with 'Best,'"

2

Answer the builder's clarifying questions

It will ask about preferred tone, sign-off, word limits, and special rules (e.g. always CC a manager on client emails). Answer in plain language.

3

Review the generated SKILL.md

The builder shows you the complete file — frontmatter, rules, and an example. Ask for any changes in plain English:

  • "Change the sign-off to 'Kind regards,'"
  • "Add a rule about keeping emails under 150 words"
  • "Always CC the account manager on client emails"
4

Confirm and save

When you're happy, type save or confirm. The builder writes the SKILL.md to your skills folder automatically — no file manager needed.

5

Test it — see the difference

Start a fresh chat and run this prompt. Claude should mention reading the email-writer skill before responding:

Test prompts
"Write an email to a client about a project delay." "Draft a follow-up to a colleague who hasn't responded in 3 days." "Reply to a customer complaint about a late delivery."

Look for: specific subject line · no "Hope this email finds you well" · one concrete ask · your custom sign-off.

🛠 Skill Builder · Intermediate
Stage 3b

Sharpen Your Skill

Revisit the email-writer skill from Stage 1. Four targeted upgrades that make any skill noticeably more precise — all in plain language, no files to edit manually.

1

Trigger Engineering — write a description that fires exactly when you want

The description field is the only part Claude reads when deciding whether to load a skill. Vague descriptions over-fire (skill loads when it shouldn't) or under-fire (skill is ignored). The fix is specific verbs and a clear scope.

🔍
Weak vs. strong trigger

Too vague: "Use this skill when the user wants to communicate with someone."
Precise: "Use this skill whenever the user asks to write, draft, or compose a professional email, follow-up, or reply — including internal emails to colleagues and external emails to clients."

Prompt — tighten the trigger

"Use the skill builder to edit my email-writer skill. Tighten the description so it triggers on: write an email, draft an email, compose a message, follow up, reply to an email. It should NOT trigger when I ask to summarise an email or translate one."

2

Negative Examples — tell Claude what to never do

Claude has strong defaults — it naturally opens emails with "Hope this email finds you well." A negative rule overrides that default every time. One concrete "never" beats a paragraph of positive instructions.

🚫
Examples of effective negative rules

— Never open with "Hope this email finds you well" or any filler greeting.
— Never use more than one exclamation mark per email.
— Never include more than one ask per email.

Prompt — add negative rules

"Use the skill builder to edit my email-writer skill. Add these rules: never open with 'Hope this email finds you well' or any filler phrase; never use more than one exclamation mark; never include more than one ask per email."

3

Conditional Instructions — different rules for different situations

Skills can branch. Write plain-English conditions and Claude will apply the right rule based on context — no code required.

🔀
Examples of conditions

— If the email is to an internal colleague, use a casual tone and skip the formal sign-off.
— If the email is a complaint response, open by acknowledging the issue before explaining.
— If the user provides a deadline, always include it in the subject line.

Prompt — add conditional rules

"Use the skill builder to edit my email-writer skill. Add: if the email is internal (to a colleague), use a casual tone and skip the formal sign-off. If the user mentions a deadline, always put it in the subject line."

4

Skill Evaluation — verify it fires when it should and stays quiet when it shouldn't

A good skill eval is six prompts: three that should trigger the skill, three that should not. Run them in a fresh chat each time so there's no conversation carry-over.

Should trigger

"Write an email to a client about a delay." "Draft a follow-up to someone who hasn't replied." "Reply to a customer complaint."

Should NOT trigger

"Summarise this email thread." "Translate this email to Spanish." "What does this email mean?"
💡
How to check if the skill fired

Look at Claude's thinking output at the top of the response — it will name the skill if it loaded it. No skill name = skill did not fire.

⚖️ Real World Skill
Stage 3c

Contract Reviewer

Build a skill that reads any contract, identifies weak or risky clauses, and suggests plain-English fixes. A perfect example of how a skill can encode expert knowledge that most people don't have.

📎
Before you start — enable the PDF skill

Go to Customize > Skills and toggle pdf ON. This lets Claude read contract files you upload directly — no copy-pasting required.

1

Build the skill with one prompt

Open a new chat and paste this into the skill builder:

Prompt — invoke the skill builder

"Use the skill builder to create a contract-reviewer skill. When I paste or upload a contract, it should: read every clause carefully, flag weak or risky points, explain why each one is a problem in plain English, and suggest a specific fix. Organise the output as a numbered list of findings. Each finding should have: the original clause or phrase, what the risk is, and a suggested rewrite."

2

Tell it what weak points to look for

The skill builder will ask what categories of issues to flag. Here are the most valuable ones to include — answer in plain language:

Vague language

Words like "reasonable", "timely", or "as soon as possible" with no defined meaning. Either party can interpret them differently.

One-sided termination rights

If only one party can terminate the contract, or notice periods are very short, the other side is exposed.

Uncapped liability

No limit on how much one party can owe the other if something goes wrong.

Missing deliverables or deadlines

Work described in general terms with no specific output, date, or measurable acceptance criteria.

Automatic renewal clauses

Contract renews unless cancelled within a short window — easy to miss, costly to break.

IP ownership ambiguity

Who owns work produced under the contract is unclear or defaults to the wrong party.

3

Set the output format

Ask the builder to structure every finding the same way. Consistent format makes the output easy to act on:

Prompt — define the output format

"Each finding should follow this format exactly — Issue: [one sentence naming the problem]. Risk: [why this matters, in plain English, one or two sentences]. Suggested fix: [a rewritten version of the clause or specific language to add]."

4

Save and test with a real clause

Type save to confirm, then open a fresh chat and paste this sample clause to verify the skill fires and produces structured findings:

Test clause — paste this into a new chat
"Review this contract clause: The vendor shall deliver the project within a reasonable timeframe. Payment is due upon satisfactory completion. Either party may terminate this agreement with 3 days written notice. The vendor retains all intellectual property created under this agreement unless otherwise agreed in writing."

A well-built skill should return at least four findings from that single paragraph — vague deadline, undefined "satisfactory", short termination notice, and IP ownership risk.

📄
Works with uploaded PDFs too

With the pdf skill enabled, you can upload a full contract file instead of pasting text. Claude will read the whole document and apply the contract-reviewer skill to every clause automatically.

✍️ Hand-Edit
Stage 3d

Edit SKILL.md by Hand & Load It in the Desktop App

The skill builder is fast, but every skill is just a Markdown file on disk. Open it, change a line, save, then sideload the folder into the Claude Desktop app — no builder required. This is the underlying mechanic that the builder is automating, and it's the only way to wire in resources Claude can't write for you (CSVs, examples, reference scripts).

📁
Where the file lives

Skills built in earlier stages live under ~/.claude/skills/<skill-name>/SKILL.md on macOS/Linux, or %USERPROFILE%\.claude\skills\<skill-name>\SKILL.md on Windows. Each skill is its own folder — you can drop extra files (templates, reference data) right next to SKILL.md.

1

Open the existing skill folder

Pick the email-writer skill from Stage 1. Open its folder in your file manager or favourite editor (VS Code, Sublime, even TextEdit/Notepad).

cd ~/.claude/skills/email-writer ls # SKILL.md code SKILL.md # or: open -e SKILL.md
2

Read the two parts: frontmatter & body

The top YAML block between the --- fences is the frontmatter — Claude reads only the description here when deciding whether to load the skill. Everything below is the body — the rules Claude follows once the skill is active.

--- name: email-writer description: Use this skill whenever the user asks to write, draft, compose, or rewrite a professional email. Triggers include 'write an email', 'draft an email', 'reply to'. --- # Email Writer ## Rules - Subject lines must be specific (no "Quick question"). - Never open with "Hope this email finds you well". - One clear ask per email. - Sign off with "— Doron".
3

Make a deliberate manual edit

Change something the builder would have to be coaxed into. Three good practice edits:

✏️
Try one of these

— Add a new bullet under Rules: "Match the language of the incoming email — if it's in Hebrew, reply in Hebrew."
— Add a new section ## Examples with one good and one bad email side by side.
— Tighten the description by adding negative triggers: "Do NOT trigger when the user asks to summarise or translate an existing email."

Save the file. That's it — no compile step, no restart yet.

4

Load it into the Claude Desktop app

The desktop app reads skills from your local skills folder, but you have to point it there once. The flow is identical on macOS and Windows.

  1. Open the Claude Desktop app.
  2. Click your profile / avatar → Settings.
  3. Go to CapabilitiesSkills (or Customize → Skills in newer builds).
  4. Click Add skill / Import from folder and pick the folder containing your edited SKILL.md.
  5. Toggle the new email-writer entry on.
💡
If the app already had this skill loaded

Toggle it off, then on again — the desktop app re-reads the file on each enable. Some builds require a full quit (⌘Q / right-click tray → Quit) before edits are picked up.

5

Verify the edit landed

Open a fresh chat in the desktop app and run a prompt that should fire the skill. Check Claude's thinking output at the top of the response — the skill name appears there when it loads.

Prompt — verify

"Write a short email to a client letting them know the report is delayed by two days."

🔎
What you're looking for

Your manual edit should be visible in the output — the new rule applied, the new tone honoured, or the new section's example pattern reflected. If it's not, the file wasn't reloaded; toggle the skill off/on and try again.

6

When to hand-edit vs. use the builder

Hand-edit

  • One-line tweaks (description, a single rule)
  • Adding reference files alongside SKILL.md
  • Version-controlling skills in git
  • Sharing a skill folder with a teammate

Use the builder

  • Starting from scratch
  • Restructuring large sections
  • Adding negative examples or evals
  • Anywhere you'd rather describe than write
🛠 Skill Builder · Advanced
Stage 4

Game-Making Skill

The skill builder can generate richer technical skills than most people would write by hand. Use it to create a full retro-shooter expert skill, then build a game with it immediately.

Prompt 1 — build the retro-shooter skill

"Use the skill builder to create a retro-shooter skill for building retro browser games as single HTML files. Cover: sub-genres (Space Invaders, Galaga, Asteroids, bullet hell), canvas 2D drawing, scrolling starfield, particle explosions, Web Audio API chiptune SFX, delta-time game loop, AABB collision detection, wave spawning, power-ups (rapid fire, spread shot, shield), HUD drawing, localStorage hi-score, and game states (title / playing / game over). Include a working code snippet for each major system. Write a description that triggers whenever anyone asks to build a game, shooter, or arcade project."

Refine it with follow-up prompts in the same conversation:

Add code snippets

"Add code snippets for maybeDropPowerUp and the collectPowerUp handler."

Tighten the trigger

"Make the description trigger on: game, shooter, arcade, Space Invaders, Galaga, Asteroids, bullet hell, canvas game, HTML game."

When satisfied, type save. Then test in a fresh chat:

Prompt 2 — test the skill

"Build me a simple Asteroids-style game — rotating ship, thrust, shooting rocks that split into smaller ones, wrap-around screen edges."

🎮
What to look for

Claude should mention reading the retro-shooter skill before starting. The output will be noticeably more polished: particle explosions, chiptune audio, delta-time movement, hi-score persistence, and proper game states — all from the skill.

06 — Quick Reference

Skill Builder Cheatsheet

Everything you need to know in one place.

Task How to do it in Claude Code
Enable the skill builder Customize > Skills > toggle skill-creator ON
Create a new skill "Use the skill builder to create a [name] skill that [description]"
Edit an existing skill "Use the skill builder to edit my [name] skill — add [rule]"
List all active skills /skills in any chat window
Disable a skill Customize > Skills > toggle the skill OFF
Test a skill triggers Fresh chat > type your trigger phrase > check thinking output for skill name
Export skill (for upload) Right-click the skill folder > Compress / Send to ZIP
Upload skill to claude.ai Settings > Customize > Skills > + > Upload a skill (ZIP)

Desktop App vs. claude.ai Web

Aspect 🖥 Claude Code Desktop App 🌐 claude.ai Web
Create skills Conversationally via skill-creator Upload pre-built skills as ZIP
Edit skills Ask the builder to update — saves in place Must re-upload ZIP to update
Where they work All desktop app projects Browser chat, Excel add-in, PowerPoint add-in
Manage /skills to list; Customize to toggle Customize > Skills toggle panel
07 — Ideas

Skills to Build Next

Any task you repeat is worth a skill. Just describe it to the skill builder and it'll write the file.

📝

meeting-notes

Format and summarise meeting transcripts with a TL;DR and numbered action items with owners

🔍

code-review

Enforce your team's PR review style — what to check, how to phrase feedback

📦

release-notes

Write changelogs in a consistent format from commit messages or diffs

🎫

ticket-writer

Turn rough ideas into well-scoped Jira tickets with acceptance criteria

📊

status-update

Write weekly team status updates in a structured, scannable format

🎮

retro-shooter

Expert skill for retro browser games — canvas, audio, game loop, waves, power-ups

🔄
Skills are version-controllable

The SKILL.md files the builder creates live on disk. Commit them alongside your codebase and share them across your team — or export as ZIP and upload to claude.ai for browser and Office add-in use.

Recap

Key Takeaways

Skills are plain Markdown files — no code required. The skill builder writes the file; you just describe what you want in plain language.

The skill builder makes creation conversational. Enable skill-creator in Customize > Skills, then describe your task. Refine in conversation until it's right, then type save.

The description field is what triggers a skill. Write it with specific verbs and a clear scope — that's the only part Claude reads when deciding whether to load it.

Any task you repeat is worth a skill. If you've asked Claude the same thing more than twice, build a skill for it.

The same SKILL.md works everywhere. Built in the desktop app, exported as ZIP, uploaded to claude.ai — write it once, use it in chat, Excel, and PowerPoint.

Now go build something.

Download the full workshop PDF and follow the skill builder stages.

Download Workshop PDF