CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

n8n-code-javascript

Write, review, or debug JavaScript in an n8n Code node. Use when a Code node is already in the workflow (editing it, fixing an error, choosing its mode, making it faster), or when a new one is justified: no native node fits (check the job-to-node table in using-n8n-mcp-skills first) and the job is on the closed list — loops or recursion no node expresses, state across runs, parsing no node handles, an allowlisted library, heavy all-items work, or one short node replacing 4+ glue nodes. Covers $input/$json/$node in code, this.helpers, Luxon, SplitInBatches loops, cross-iteration data, pairedItem, per-item performance, and the "Why Code:" note. Filtering, totals, dedupe, sorting, joins, file formats and API paging have native nodes (Filter, Summarize, Remove Duplicates, Sort, Merge, Extract From File, HTTP Request): see n8n-node-configuration. EXCEPTION — for the AI-agent-callable Custom Code Tool (@n8n/n8n-nodes-langchain.toolCode), use n8n-code-tool; it has a different runtime contract.

Quality

85%

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

SKILL.md
Quality
Evals
Security

Quality

Content

73%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 body is highly actionable with a clear, validated decision workflow, but it suffers from meaningful repetition of the webhook-body and native-node-first rules, and its progressive-disclosure structure is broken in practice: all four referenced detail files are missing from the bundle. Fixing the dangling references is the single highest-impact improvement.

Suggestions

Ship the four referenced files (DATA_ACCESS.md, COMMON_PATTERNS.md, ERROR_PATTERNS.md, BUILTIN_FUNCTIONS.md) in a references/ directory, or remove the links and fold their essential content inline — the current bundle promises a detail layer that does not exist.

State the webhook `.body` rule once (in the data-access section) and the native-node-first list once (in the gate), dropping the duplicates in Essential Rules, Top Mistakes, Common Patterns, and the checklist.

Trim meta-filler such as the closing "Ready to write JavaScript!" paragraph and the vague per-skill bullet lists under "Integration with Other Skills" in favor of one-line pointers.

DimensionReasoningScore

Conciseness

Mostly efficient, n8n-specific material, but noticeably repetitive: webhook `.body` nesting is explained four times (Essential Rules #4, the "Critical: Webhook Data Structure" section, Top Mistakes #5, the checklist) and the native-node-first list recurs ~5 times (the gate, "Native first:", Common Patterns overview, the When-to-Use table, the "Not on the list" paragraph). Anchor 3 fits — could be tightened considerably without losing information.

3 / 5

Actionability

Fully executable guidance throughout: copy-paste code for both modes and return shapes, exact error messages ("Code doesn't return items properly", "ReferenceError: $helpers is not defined"), specific env vars, and a JSON snippet for the `notes` convention. Matches the copy-paste-ready top anchor.

5 / 5

Workflow Clarity

The decision flow is explicit and validated: a numbered 3-step gate, a decision shortcut, the enforced `Why Code:` note convention, a pre-deployment checklist, `validate_node` for verification, and an error-message lookup table for recovery. Batch-loop guidance includes safety steps (Limit 1 after the done output, static-data accumulation), so the batch-operation cap does not apply.

5 / 5

Progressive Disclosure

The body links repeatedly to DATA_ACCESS.md, COMMON_PATTERNS.md, ERROR_PATTERNS.md, and BUILTIN_FUNCTIONS.md, but no references/, scripts/, or assets/ directories exist in the bundle — every "See:" link is a dead end, and detail that should live in those files is inlined in a ~430-line SKILL.md instead. Scored against the actual (empty) bundle structure, this lands at anchor 2: the disclosed layer is absent, so navigation breaks wherever a link is followed.

2 / 5

Total

15

/

20

Passed

Description

92%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.

An exemplary description: concrete capabilities, explicit use-when triggers covering both the edit-existing and create-new cases, and explicit boundary routing to sibling skills. The only weakness is a couple of missing natural synonyms (e.g., the legacy "Function node" name) in the trigger vocabulary.

DimensionReasoningScore

Specificity

"Write, review, or debug JavaScript in an n8n Code node" plus a concrete coverage list ("$input/$json/$node in code, this.helpers, Luxon, SplitInBatches loops, cross-iteration data, pairedItem, per-item performance") names multiple specific capabilities with no real gaps, matching the comprehensive anchor.

5 / 5

Completeness

Both what ("Write, review, or debug JavaScript in an n8n Code node") and when ("Use when a Code node is already in the workflow … or when a new one is justified …") are explicitly stated with concrete trigger conditions, matching the top anchor.

5 / 5

Trigger Term Quality

Natural user phrases are well covered ("a Code node is already in the workflow", "editing it, fixing an error, choosing its mode, making it faster", "debug JavaScript"), but a few natural synonyms are missing — notably the legacy "Function node" name and plain "script". Sits between anchor 4 and 5, closer to 4.

4 / 5

Distinctiveness Conflict Risk

It actively disambiguates against siblings: "Filtering, totals, dedupe … see n8n-node-configuration" and "EXCEPTION — for the AI-agent-callable Custom Code Tool (@n8n/n8n-nodes-langchain.toolCode), use n8n-code-tool", giving it a clear niche with minimal conflict risk.

5 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 13 missing

Warning

Total

15

/

16

Passed

Repository

czlonkowski/n8n-skills

Path

skills/n8n-code-javascript/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.