CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

n8n-expression-syntax

Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, mapping data between nodes, or referencing webhook data in workflows. Use this skill whenever configuring node fields that reference data from previous nodes — expressions are how n8n passes data between nodes, and getting the syntax wrong is the most common source of workflow errors. Also use when asked whether a complex expression hurts performance.

Quality

77%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/n8n-expression-syntax/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

60%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The content is exceptionally actionable — verified wrong-vs-right pairs, real error messages, and concrete procedures — and the gatekeeper/debugging workflows are clearly sequenced. But it is severely bloated by 4-5x repetition of the same handful of rules and re-teaching of basic JavaScript, and it points to two reference files that do not exist while inlining the material they should hold.

Suggestions

Collapse the duplicated rule statements: "Validation Rules", "Common Mistakes" quick-fix table, "Best Practices" Do/Don't, and "Summary" all restate the same 5-6 rules already given in "Expression Format" and "Core Variables" — state each rule once and delete the repeats.

Cut "Expression Helpers/Available Methods" and "Data Type Handling", which list standard JavaScript (string/array methods, ternaries, dot vs bracket notation) Claude already knows; keep only n8n-specific behavior like the expression-only helper functions and silent-null runtime rule.

Create the referenced COMMON_MISTAKES.md and EXAMPLES.md (currently dangling) and move the inlined "Working Examples" and mistake tables into them, shrinking SKILL.md to an overview with one-level-deep, working references.

DimensionReasoningScore

Conciseness

At ~690 lines the body states the same core rules four to five times: the {{}} brace rule appears in "Expression Format", "Validation Rules" #1/#4, "Common Mistakes" quick-fix table, "Best Practices" Do/Don't, and "Summary"; the webhook `.body` rule and case-sensitive node names repeat similarly. "Expression Helpers/Available Methods" and "Data Type Handling" list standard JS (`.toLowerCase()`, `.split()`, `.map()`, ternaries, dot vs bracket notation) Claude already knows. Below anchor 3 because the duplication is extensive, though not anchor 1 since substantial high-value non-obvious content ($jmespath quoting table, silent-null runtime behavior) is interwoven.

2 / 5

Actionability

Copy-paste-ready wrong-vs-right pairs (❌ `{{$json.name}}` / ✅ `{{$json.body.name}}`), exact error messages ("expected two arguments (Object, string)"), a tested $jmespath table, a debugging wrapper snippet, a concrete MCP removal sequence (removeConnection → addConnection → patchNodeField → removeNode), and worked examples covering the common cases. Fully executable with no gaps.

5 / 5

Workflow Clarity

The "transform gatekeeper" is an explicitly ordered decision procedure ("walk this order and stop at the first that fits", numbered 1-4) and the debugging section sequences verification (editor preview → check output for `null` → temporary try/catch wrapper) with a recovery loop. Not 5: checkpoints are scattered across sections rather than consolidated into one validated workflow, and the Set-node removal procedure states steps but no verify step after the patch. This is not a destructive/batch skill, so no cap applies.

4 / 5

Progressive Disclosure

No bundle files exist — neither references/ nor the referenced COMMON_MISTAKES.md and EXAMPLES.md are present, so both "See [COMMON_MISTAKES.md]" and "See [EXAMPLES.md]" links are dangling. Meanwhile the body inlines ~3 full worked examples in "Working Examples" and a quick-fix mistake table, i.e. the very content the missing files would hold. Falls below anchor 3 (references present but organization imperfect) because navigation to the referenced files actually fails; matches anchor 2's clause of content that belongs in separate files being inlined.

2 / 5

Total

13

/

20

Passed

Description

86%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description with explicit what/when structure and rich, natural trigger coverage. The only weakness is that the stated capabilities are limited to two actions (validate, fix) while the body actually serves a broader expert-guide role, and one justification sentence ("expressions are how n8n passes data between nodes...") adds tokens without trigger value.

DimensionReasoningScore

Specificity

"Validate n8n expression syntax and fix common errors" names the domain and two concrete actions, but the capability list stops there — the writing/guide role the body actually serves is never stated as an action. It sits between anchor 3 (1-2 concrete actions, not comprehensive) and anchor 4 (several specific actions); the rest of the description is trigger clauses, not capabilities, so 3 fits best.

3 / 5

Completeness

Explicitly answers both questions: what ("Validate n8n expression syntax and fix common errors") and when, with three concrete trigger clauses ("Use when writing n8n expressions...", "Use this skill whenever configuring node fields that reference data from previous nodes", "Also use when asked whether a complex expression hurts performance"). Matches the anchor-5 example structure.

5 / 5

Trigger Term Quality

Comprehensive natural phrasing users would actually say: "writing n8n expressions", "using {{}} syntax", "troubleshooting expression errors", "mapping data between nodes", "referencing webhook data", and "whether a complex expression hurts performance" — including variable names ($json/$node) users literally type. No relevant synonyms are missing; there are no file extensions in this domain.

5 / 5

Distinctiveness Conflict Risk

Clear niche (n8n expression syntax) with domain-specific triggers that few other skills would claim. Minor overlap risk remains: the performance clause and "mapping data between nodes" could collide with sibling n8n workflow/code skills mentioned in the body's Related Skills. Not 5 because that overlap is plausible, not minimal.

4 / 5

Total

17

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (698 lines); consider splitting into references/ and linking

Warning

relative_links

Relative link issues: 4 missing

Warning

Total

14

/

16

Passed

Repository

czlonkowski/n8n-skills

Path

skills/n8n-expression-syntax/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.