Seven skills that load automatically and cover the entire cycle: designing the workflow, configuring nodes, writing expressions, and resolving validation errors.

Each skill is a folder with a SKILL.md and reference files. Claude Code reads the description, decides on its own when the topic is relevant, and only then loads the details it needs — keeping the context lightweight.
You don’t invoke anything manually. Mention a webhook, expression {{ }} or a validation error, the right skill kicks in.
O SKILL.md is short; error catalogs, patterns, and API references only enter the context when the case calls for them.
With the n8n-mcp server connected, you can search for nodes, validate configs, and publish workflows. Without it, the other six still apply.
The order in which the skills come into play in a typical build. The loop between validating and fixing usually takes 2–3 rounds—that's normal and doesn't mean anything went wrong.
n8n-workflow-patterns choose the pattern: webhook, HTTP API, database, AI agent, or scheduled.
node-configuration, expression-syntax and both code-* fill in the nodes.
validation-expert reads the errors; mcp-tools-expert validates and publishes to n8n.
They’re all in skills/ in the repository, with symlinks in .claude/skills/ — which is where Claude Code loads from.
The five proven architectural patterns: webhook processing, HTTP/API integration, database operations, AI agent workflow, and scheduled tasks.
Triggers when designing or structuring a new workflow.
Operation-aware configuration: required fields, dependencies between properties, and how much detail to request in the get_node.
Triggers when configuring a specific node.
Syntax {{ }}, variables $json e $node, data from a webhook, and the catalog of classic errors.
Triggers when writing or fixing expressions.
JavaScript Code node: $input/$json/$node, $helpers.httpRequest, dates with DateTime and the choice between the node’s modes.
The recommended approach for ~95% of cases.
Python Code node (beta): _input/_json, what you can use from the standard library, and the real limitations compared to JS.
Only when Python is actually necessary.
Interpret and resolve validation errors: error catalog, validation profiles, operator structure, and how to recognize false positives.
Triggers when a validate_* complains.
Efficient use of the n8n-mcp MCP tools: node discovery, configuration validation, workflow management, and a library of ~2,700 real templates.
Requires the n8n-mcp server to be connected.
One folder per skill, with SKILL.md plus the attachments: ERROR_CATALOG.md, COMMON_PATTERNS.md, DATA_ACCESS.md, FALSE_POSITIVES.md, DEPENDENCIES.md and the like.
All you need to get started is Claude Code and the cloned repository. The MCP and n8n instance are optional — without them, you lose automatic publishing, not the knowledge.
The skills use the native project skills mechanism (.claude/skills/).
# installed version claude --version
Clone the repo and open Claude Code from inside the folder—project skills apply only there.
git clone https://github.com/inematds/n8n-maker cd n8n-maker && claude
Only needed for the skill n8n-mcp-tools-expert search for nodes and publish workflows.
# check the connected MCPs claude mcp list
Real commands. The key is step 3: you describe what you want in Portuguese, and the skills come into play automatically.
The skills travel with the repo—nothing else to install.
git clone https://github.com/inematds/n8n-maker cd n8n-maker
Skills in .claude/skills/ are project-specific: they only load when the session runs there.
claude # from inside ~/projetos/n8n-maker # check that these appeared: /skills → n8n-*
Don't invoke any skills. Describe the goal; Claude will choose the pattern and build the structure.
# example request "monta um workflow que recebe um webhook, valida o payload e grava no Postgres" # → n8n-workflow-patterns uses the webhook pattern # → n8n-node-configuration configures Webhook, IF, and Postgres
When editing a dynamic field or Code node, the syntax and code skills take over.
# expression in a node field {{ $json.body.email }} # Code node (JavaScript) const items = $input.all(); return items.map(i => ({ json: { email: i.json.body.email } }));
Wait 2–3 turns. The n8n-validation-expert translates the message, identifies the cause, and distinguishes a real error from a false positive.
# typical request "valida esse workflow e corrige o que aparecer" # → real errors: fixed # → false positives: explained and ignored
With the n8n-mcp MCP connected, the n8n-mcp-tools-expert creates and updates the workflow directly in n8n.
"sobe esse workflow na minha instância do n8n"
Symlink the folders to the global skills directory — that way, they stay versioned here.
ln -s ~/projetos/n8n-maker/skills/n8n-* ~/.claude/skills/
How routing works in practice—you speak naturally, and the right skill appears.
workflow-patterns (webhook pattern) → node-configuration (Webhook + Slack) → expression-syntax (build the message).
$json is coming through as undefined”expression-syntax shows the correct way to access the item and the difference between $json, $node and webhook data.
code-javascript with $helpers.httpRequest and the pagination loop; workflow-patterns if it turns into its own workflow.
validation-expert looks it up in the error catalog, fixes the structure, and says whether it’s a false positive.
The repository grew out of skills that already ran in the global profile; the next step is to add executable examples and make installation easier.
~/.claude/skills/ and became a project: content in skills/, symlinks in .claude/skills/, README, and this guide.