Key takeaways
- A Claude Code skill is a folder with a
SKILL.mdfile. The frontmatter tells Claude when to use it. The body tells Claude what to do.1- Personal skills live at
~/.claude/skills/<name>/SKILL.md. Project skills live at.claude/skills/<name>/SKILL.mdand can be committed to git.1- Build a skill when you keep pasting the same Shopify checklist into chat. Install the Shopify AI Toolkit plugin when you need docs, schema validation, and store execution.2
- Claude loads a skill automatically when your request matches its
description, or you invoke it directly with/skill-name.1- Keep
SKILL.mdunder 500 lines. Move long reference material into separate bundled files.1
This claude code shopify skill tutorial walks through building your own agent skill for Shopify work: a reusable SKILL.md file that scaffolds a Liquid section, checks it against your team’s rules, and loads only when you need it.
A skill is different from the Shopify AI Toolkit plugin. The plugin gives you Shopify’s docs, schema validation, and store execution. A custom skill encodes your conventions - your section patterns, your naming rules, your review checklist. This guide covers the second one. For plugin setup, see our Shopify AI Toolkit + Claude Code setup guide.
Why you can trust us
Jacques has over 15 years of development experience and has worked with hundreds of Shopify stores. We built Fudge - an AI-native Shopify store editor with a 5.0 rating and a Built for Shopify badge. We build agent skills and Claude Code workflows for Shopify daily.
What is a Claude Code skill?
A skill extends what Claude can do inside Claude Code. You create a SKILL.md file with instructions, and Claude adds it to its toolkit.1
The mechanics are simple. The file has two parts: YAML frontmatter between --- markers that tells Claude when to use the skill, and markdown content with the instructions Claude follows when the skill runs.1
Claude Code skills follow the Agent Skills open standard, which works across multiple AI tools.1
How is a skill different from a plugin or MCP server?
These features overlap, so it helps to name the difference.
| Feature | What it is | Best for |
|---|---|---|
| Skill | A SKILL.md folder with instructions Claude loads on demand | Encoding your own workflows and conventions |
| Plugin | A package that bundles skills, hooks, and MCP servers | Distributing a set of features (like the Shopify AI Toolkit) |
| MCP server | A protocol connecting external tools and data | Live API access and store operations |
The key trait of a skill is progressive disclosure. The description sits in context so Claude knows the skill exists. The full body loads only when the skill is used. Long reference material costs almost nothing until you need it.1
When does Claude load a skill?
By default, both you and Claude can invoke any skill.1
You can type /skill-name to run it directly. Claude can also load it automatically when your request matches the description.1 That auto-load behavior is why a specific description matters, which we cover below.
When to build a skill vs use the Shopify AI Toolkit plugin
Both exist. Pick based on what you are encoding.
The Shopify AI Toolkit connects Claude to Shopify’s docs, API schemas, and code validation, and can manage your store through the CLI’s execute capability.2 It answers “what is the correct Shopify way to do this.”
A custom skill answers “what is our way to do this.” Build one when:
- You keep pasting the same section-scaffolding checklist into chat.1
- A section of your
CLAUDE.mdhas grown into a procedure rather than a fact.1 - You have naming rules, schema patterns, or a review checklist specific to your store.
The two work together. Install the plugin for Shopify accuracy. Add a skill for your house style on top of it.
| You need | Use |
|---|---|
| Current Shopify docs and schema validation | AI Toolkit plugin |
| Live store reads and mutations | AI Toolkit plugin |
| Your team’s section patterns and conventions | Custom skill |
| A repeatable scaffold or review checklist | Custom skill |
For a broader look at agent-based theme work, see our guide on multi-agent Shopify theme development.
SKILL.md structure and frontmatter
Every skill needs a SKILL.md file. The directory name becomes the command you type, and the description helps Claude decide when to load the skill automatically.1
A minimal skill looks like this:
---
name: my-skill
description: What this skill does
---
## Instructions
The markdown body Claude follows when the skill runs.
The name and description are the two frontmatter fields that carry the weight.1
Useful optional fields
The standard supports more frontmatter. A few that matter for Shopify work:1
| Field | Purpose |
|---|---|
disable-model-invocation | Set true so Claude cannot auto-run the skill. You trigger it manually with /name. Good for skills with side effects. |
allowed-tools | Tools Claude can use without asking permission while the skill is active. Accepts a space- or comma-separated list. |
disallowed-tools | Tools removed from Claude’s pool while the skill is active. |
The allowed-tools field grants permission for the listed tools while the skill runs. It does not restrict which tools exist. Every tool stays callable, and your permission settings still govern the rest.1
Folder layout: where skills live
Skills load from two main locations.1
| Scope | Path | Who can use it |
|---|---|---|
| Personal | ~/.claude/skills/<skill-name>/SKILL.md | All your projects |
| Project | .claude/skills/<skill-name>/SKILL.md | This project only |
When skills share a name across levels, personal overrides project.1
Commit project skills to version control so your whole team gets the same behavior.1 A Shopify theme repo with a shared section-scaffolding skill means every developer generates sections the same way.
Bundling supporting files
The SKILL.md is required. Other files are optional and let you build more capable skills: templates for Claude to fill in, example outputs, scripts Claude can execute, or detailed reference docs.1
A skill that scaffolds Shopify sections might look like this:
~/.claude/skills/shopify-section/
├── SKILL.md # Required: when + how
├── references/
│ └── schema-rules.md # Loaded on demand
├── templates/
│ └── section.liquid # Starter template
└── scripts/
└── validate.sh # Claude can run this
Reference these files from your SKILL.md so Claude knows what they contain and when to load them.1 Point script paths at ${CLAUDE_SKILL_DIR} so they resolve whether the skill is installed at the personal, project, or plugin level.1
Worked example: a Shopify section scaffolder
Here is a full skill that scaffolds a Liquid section from a prompt and validates the result against your rules.
Step 1: Create the folder
mkdir -p ~/.claude/skills/shopify-section
Step 2: Write SKILL.md
Save this to ~/.claude/skills/shopify-section/SKILL.md:
---
name: shopify-section
description: Scaffold a new Shopify Liquid section with a schema block and validate it against our theme rules. Use when the user asks to create a section, add a section, or build a new section for a Shopify theme.
---
## Scaffold a Shopify section
When asked to create a section:
1. Create the file under `sections/` with a kebab-case name.
2. Write the Liquid markup, then a `{% schema %}` block at the end.
3. The schema must include a `name`, at least one setting, and a
`presets` entry so the section is available in the theme editor.
4. Wrap the section in a container with a unique `id` scoped by
`section.id` so styles do not leak.
5. Add settings for section padding (top and bottom) as `range` inputs.
## Validate before finishing
- Confirm every setting referenced in the markup exists in the schema.
- Confirm the schema is valid JSON.
- Confirm no inline styles use hard-coded colors. Pull colors from
settings instead.
Report any rule the section breaks and fix it before returning.
The description is the load-bearing line. It names the exact actions a developer would ask for: “create a section,” “add a section,” “build a new section.” That phrasing is what Claude matches against.1
Step 3: Invoke it
Ask something that matches the description, and Claude loads the skill automatically:1
Create a hero section with a heading, subheading, and a background image setting.
Or run it directly:1
/shopify-section
Claude reads the skill body, scaffolds the section under sections/, and runs your validation rules before it hands back the file.
If you also want the result checked against Shopify’s live schema rules rather than only your own, pair the skill with the AI Toolkit plugin. The plugin handles Shopify correctness; the skill handles your house style. For prompt patterns that pair well with this, see our guide on Claude prompts for Shopify.
Pitfalls to avoid in 2026
A few things trip people up when writing their first skill.
Vague descriptions
Claude decides whether to load a skill from its description.1 “Helps with Shopify” is too broad and will either fire on everything or nothing.
Name the concrete actions instead: “create a section, add a section, build a new section.” Put the key use case first, because the listed text is capped at 1,536 characters and the start carries the most weight.1
Bloated SKILL.md files
Keep SKILL.md under 500 lines. Move detailed reference material to separate files.1
The body loads into context every time the skill runs, so a long file is a recurring cost. Push schema tables, long examples, and edge-case docs into references/ and link them.1
Unreviewed tool permissions
For skills checked into a project’s .claude/skills/ directory, allowed-tools takes effect after you accept the workspace trust dialog.1
A skill can grant itself broad tool access. Review project skills before trusting a repository, the same way you would review a permission rule.1
Reaching for a skill when a plugin already exists
If Shopify’s toolkit already does the job, a custom skill is extra maintenance. Build one only when you are encoding conventions the plugin cannot know. For platform-specific setup on other editors, see our Shopify AI Toolkit Cursor setup guide.
Where Fudge fits
A skill makes Claude faster at writing Shopify code. It does not add the workflow real store changes need: drafts, previews, approvals, and rollback. Code lives in git; store state does not.
That gap is what Fudge fills. It is an AI-native Shopify store editor that generates on-brand drafts from a prompt, lets you preview and refine them, and publishes when you are ready. The people on your team who should not be writing Liquid or managing SKILL.md files can still ship changes. For the wider shift this fits into, see our take on AI-first Shopify development.
Quick reference
| Task | Command or path |
|---|---|
| Personal skill location | ~/.claude/skills/<name>/SKILL.md |
| Project skill location | .claude/skills/<name>/SKILL.md |
| Invoke a skill directly | /skill-name |
| Block auto-invocation | disable-model-invocation: true |
| Grant tools without prompts | allowed-tools: in frontmatter |
| Install the Shopify AI Toolkit | claude plugin install shopify-ai-toolkit@claude-plugins-official |
Summary
A Claude Code skill is a small, reusable folder that teaches Claude your Shopify conventions. Two fields do the work: a description that decides when the skill loads, and a body under 500 lines that tells Claude what to do.1
Build a skill for your house style. Install the AI Toolkit plugin for Shopify accuracy. Use both together, and keep store publishing itself governed by drafts and previews rather than raw execution.
FAQ
A skill is a folder containing a "SKILL.md" file with YAML frontmatter and markdown instructions. The frontmatter tells Claude when to use the skill, and the body tells Claude what to do. Claude loads it automatically when your request matches the description, or you can invoke it directly with "/skill-name".
Personal skills live at "~/.claude/skills/<name>/SKILL.md" and apply to every project. Project skills live at ".claude/skills/<name>/SKILL.md" and apply only to that repo. Commit project skills to git so your whole Shopify theme team gets the same scaffolding behavior.
Use the Shopify AI Toolkit plugin for Shopify's docs, schema validation, and store execution. Build a custom skill for your own conventions, like section patterns, naming rules, or a review checklist. They work together: the plugin handles Shopify correctness, the skill handles your house style.
Claude reads each skill's "description" and loads a skill automatically when your request matches it. That is why the description should name concrete actions rather than being vague. You can also invoke any skill directly by typing "/skill-name".
Yes. Alongside "SKILL.md" you can bundle templates, example outputs, reference docs, and scripts Claude can execute. Reference these files from the body so Claude knows when to load them, and point script paths at "${CLAUDE_SKILL_DIR}" so they resolve at any install level.
Keep it under 500 lines. The body loads into context each time the skill runs, so a long file is a recurring cost. Move schema tables, long examples, and edge-case docs into separate reference files and link them from the main SKILL.md.
Footnotes
-
Anthropic, “Extend Claude with skills,” Claude Code documentation. https://code.claude.com/docs/en/skills ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16 ↩17 ↩18 ↩19 ↩20 ↩21 ↩22 ↩23 ↩24 ↩25 ↩26 ↩27 ↩28 ↩29 ↩30 ↩31 ↩32
-
Shopify, “Shopify AI Toolkit,” Shopify developer documentation. https://shopify.dev/docs/apps/build/ai-toolkit ↩ ↩2