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.
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](../create-issue/SKILL.md). 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.bcbea0a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.