n8n-io/n8n:create-skill
>- Guides users through creating effective Agent Skills. Use when you want to create, write, or author a new skill, or asks about skill structure, best practices, or SKILL.md format.
npx skills add https://github.com/n8n-io/n8n --skill n8n:create-skill
Skills are markdown (plus optional scripts) that teach the agent a focused workflow. Keep SKILL.md short—the context window is shared with chat, code, and other skills.
| Location | When to use |
|----------|-------------|
| .agents/skills/<name>/ | Default for n8n: team-shared, versioned, agent-neutral source. |
| .claude/plugins/n8n/skills/<name>/ | Claude-specific override, or a generated symlink to .agents/skills/<name>/. |
| .opencode/skills/<name>/ | OpenCode-specific override only. Shared skills stay in .agents/skills/<name>/. |
| ~/.claude/skills/<name>/ | Personal skill for Claude Code across all projects. |
| ~/.config/opencode/skills/<name>/ | Personal skill for OpenCode across all projects. |
| ~/.cursor/skills/<name>/ | Optional personal skill for Cursor only, global to your machine. |
Do not put custom skills in ~/.cursor/skills-cursor/—that is reserved for Cursor’s built-in skills.
Prefer .agents/skills/ for anything that should match how the rest of the team works. Run pnpm sync:skill-links after adding or removing shared skills.
Ask (or infer) briefly:
.agents/skills/ if one fits.Ask the user in plain language when you need more detail.
skill-name/
├── SKILL.md # required
├── reference.md # optional — detail the agent reads only if needed
├── examples.md # optional
└── scripts/ # optional
---
name: n8n:skill-name # n8n:<name> — lowercase, hyphens, max 64 chars
description: >- # max 1024 chars, non-empty — see below
...
---
Name — shared n8n skills use the n8n:<name> form so Claude Code namespaces
them under the n8n plugin (invoked as /n8n:<name>). The <name> part must
match the skill's directory name.
Description (discovery is everything — third person, WHAT + WHEN, trigger words):
Extracts tables from PDFs and fills forms. Use when the user works with PDFs, forms, or document extraction.Helps with documents or I can help you with PDFsSKILL.md; long reference in reference.md. Link one level deep from SKILL.md.scripts/foo.py).Rough size: aim for well under ~200 lines in SKILL.md; if it grows, split detail out.
SKILL.md; avoid pasting full child content into the parent.gh for PRs/issues, pnpm scripts from AGENTS.md.gh, or “ask the user to paste …”) when it is missing.n8n:create-issue where namespacing is available, otherwise create-issue). For human-readable links, give the canonical path from the repo root (e.g. .agents/skills/create-issue/SKILL.md). From a sibling folder, a relative link works too: create-issue. Parent skills should delegate steps instead of duplicating long procedures.- [ ] steps for multi-step work.SKILL.md first; add reference.md / scripts/ only if they save tokens or reduce errors.helper, utils).---
name: n8n:my-workflow
description: Does X using project convention Y. Use when the user asks for X or mentions Z.
---
# My workflow
1. …
2. …
## Output format
Use a fenced code block for the exact shape reviewers should see.
## More detail
See [reference.md](reference.md) if edge cases matter.
Take n8n-io/n8n:create-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.