Building a Custom Claude Code Skill for Shopify

Last updated
Expert reviewed
5 min read
Jacques Blom
Jacques Blom
CTO at Fudge.

Key takeaways

  • A Claude Code skill is a folder with a SKILL.md file. 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.md and 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.md under 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.

FeatureWhat it isBest for
SkillA SKILL.md folder with instructions Claude loads on demandEncoding your own workflows and conventions
PluginA package that bundles skills, hooks, and MCP serversDistributing a set of features (like the Shopify AI Toolkit)
MCP serverA protocol connecting external tools and dataLive 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:

The two work together. Install the plugin for Shopify accuracy. Add a skill for your house style on top of it.

You needUse
Current Shopify docs and schema validationAI Toolkit plugin
Live store reads and mutationsAI Toolkit plugin
Your team’s section patterns and conventionsCustom skill
A repeatable scaffold or review checklistCustom 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

FieldPurpose
disable-model-invocationSet true so Claude cannot auto-run the skill. You trigger it manually with /name. Good for skills with side effects.
allowed-toolsTools Claude can use without asking permission while the skill is active. Accepts a space- or comma-separated list.
disallowed-toolsTools 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

ScopePathWho can use it
Personal~/.claude/skills/<skill-name>/SKILL.mdAll your projects
Project.claude/skills/<skill-name>/SKILL.mdThis 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

Skip the tooling and just describe the change.
Try Fudge for Free

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

TaskCommand 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-invocationdisable-model-invocation: true
Grant tools without promptsallowed-tools: in frontmatter
Install the Shopify AI Toolkitclaude 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

What is a Claude Code skill?

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".

Where do I put a Claude Code skill for a Shopify project?

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.

Should I build a skill or use the Shopify AI Toolkit plugin?

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.

How does Claude decide when to load a skill?

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".

Can a skill run scripts or use templates?

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.

How long should a SKILL.md file be?

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.

Jacques's signature
Edit your Shopify storefront without code.

Footnotes

  1. 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

  2. Shopify, “Shopify AI Toolkit,” Shopify developer documentation. https://shopify.dev/docs/apps/build/ai-toolkit 2

You might also be interested in

Debugging Shopify Liquid With Claude
Debug Shopify Liquid with Claude - fix nil objects, loop scope, whitespace, filter chains, pagination, schema errors, and missing translation keys.
AI for Shopify SEO: Meta Titles, Descriptions and Schema
AI Shopify SEO workflow using Claude to draft meta titles and descriptions at scale and generate Product, FAQ, and BreadcrumbList JSON-LD.
How to Use Shopify Sidekick (2026)
How to use Shopify Sidekick for store management. Covers setup, effective commands, current limitations, and tips to get useful results.